- 博客(15)
- 资源 (2)
- 收藏
- 关注
原创 【C语言进阶剖析】42、内存操作的经典问题分析(二)
1 常见内存错误结构体成员指针未初始化结构体成员指针未分配足够的内存内存分配成功,但未初始化内存操作越界我们记得定义一个指针的时候要初始化,却容易忘记定义结构体变量时初始化指针成员。指针未分配足够的内存会导致越界操作的问题。内存分配成功,但未初始化,这个可能回造成字符串方面的错误。内存操作越界可能会操作不因该操作的内存,比如字符串没有结尾的 ‘\0’,复制的时候没有发现结尾的 ‘\0...
2019-12-30 21:14:23 383
原创 【C语言进阶剖析】41、内存操作的经典问题分析(一)
文章目录1 野指针1.1 认识野指针1.2 野指针的由来1 野指针1.1 认识野指针指针变量中的值是非法的内存地址,进而形成野指针野指针不是 NULL 指针,是指向不可用内存地址的指针NULL 指针并无危害,很好判断,也很好调试C 语言中无法判断一个指针所保存的地址是否合法1.2 野指针的由来局部指针变量没有初始化:局部变量没有初始化就是随机值,局部指针没有初始化就随机赋值...
2019-12-29 16:26:44 443
原创 【C语言进阶剖析】40、程序的内存布局
写完的 .c 文件是源文件。也叫源代码。将源代码编译后,会生成可执行文件程序(Linux下是.out,windows下是.exe)。这个文件就是程序。也叫作可执行代码。源代码与可执行文件的对应如下,也就是程序文件的布局:可以看到,程序被编译器编译过后:初始化的全变量和静态局部变量在 .data 段,未初始化的全局变量和静态局部变量在 .bss 段,函数等代码在 .text 段。局部非...
2019-12-28 21:41:32 444
原创 【C语言进阶剖析】38、动态内存分配
文章目录1 动态内存分配的意义2 malloc 和 free2.1 malloc(0) 探究2.2 内存漏泄检测模块3 calloc 和 realloc1 动态内存分配的意义C 语言中的一切操作都是基于内存的变量和数组都是内存的别名内存分配由编译器在编译期间决定定义数组的时候必须指定数组的长度数组长度是在编译期就必须确定的可能除了在编译之前就确定数组的大小,还有别的需求:程...
2019-12-22 11:26:07 417
原创 【C语言进阶剖析】37、指针阅读技巧分析
文章目录1 笔试中的问题2 右左法则3 复杂指针阅读4 小结1 笔试中的问题2 右左法则3 复杂指针阅读4 小结
2019-12-19 23:23:07 416
原创 【C语言进阶剖析】36、函数与指针分析
文章目录1 函数类型2 函数指针3 回调函数1 函数类型C 语言中的函数有自己特定的类型函数的类型由返回值,参数类型和参数个数共同决定int add(int i, int j) 的类型为 int (int, int)C 语言中通过 typedef 为函数类型重命名typedef type name(parameter)例如:typedef int f(int, int...
2019-12-18 21:00:44 383
原创 【C语言进阶剖析】35、数组参数和指针参数分析
文章目录1 数组参数退化为指针1.1 退化的意义1.2 二维数组参数1.3 被忽略的知识点2 实例分析3 小结1 数组参数退化为指针我们知道 C 语言中的数组参数会退化为指针,可是为什么会退化为指针呢?1.1 退化的意义C 语言中只会以值拷贝的方式传递参数C 语言在诞生的时候是为了开发 Unix 操作系统,这样要求 C 语言的效率必须很高,在设计向函数传递数组时,有两个方案;将整...
2019-12-08 23:12:23 388
原创 【C语言进阶剖析】34、多维数组和多维指针
文章目录1 指向指针的指针1 指向指针的指针指针的本质是变量,会占用一定的内存空间可以定义指针的指针来保存指针变量的地址指针的指针没有什么了不起的,它还是一个指针,只不过这个指针所指向的内存空间的元素又是一个地址。可以这么理解,你的狗狗丢了,要去找狗狗,现在你有一个门牌号,你拿着这个门牌号去找对应的房子,到了对应的屋子以后,没找到狗狗,找到的还是一个门牌号,然后你拿着这个新找到的门牌号...
2019-12-08 18:59:40 373
原创 【C语言进阶剖析】33、main 函数与命令行参数
文章目录1 main 函数的概念main 函数的本质1 main 函数的概念C 语言中 main 函数成为主函数一个 C 程序是从 main 函数开始执行main 函数的本质main 函数是操作系统调用的函数操作系统总是将 main 函数作为应用程序的开始操作系统将 main 函数的返回值作为程序的退出状态思考:为什么 C 编译器支持这么多不同的 main 函数类型?...
2019-12-06 16:56:48 538
原创 【C语言进阶剖析】32、数组指针和指针数组
文章目录1 数组类型在开始之前我们先提出一个问题?下面的声明合法吗?1 数组类型C 语言中的数组有自己特定的类型数组的类型由元素类型和数组大小共同决定例如:int array[5] 的类型为 int[5]我们经常会碰见这样的情景:问:这定义的数组是什么类型的?答:int 型。。。这样的回答就是概念不清晰了,数组的类型包括元素类型和数组大小,回答int 型只回答了元素类型,正确...
2019-12-05 20:47:20 376
原创 【C语言进阶剖析】31、字符串典型问题分析
文章目录1 snprintf 函数2 strlen 和 sizeof3 比较两字符串相等4这一篇博客我们分析四个典型的字符串问题。1 snprintf 函数下面的代码会输出什么?函数 snprintf 的功能和 printf 类似,只不过 printf 是将输出到终端,snprintf 是输出到第一个参数中。这里就是输出到 buf 中。这里就是将字符串 src 复制到 buf 中,再将...
2019-12-04 00:26:12 425
原创 Leetcode题解-算法-数学
文章目录1、最长上升子序列每一个数都可以分解成素数的乘积。令 x = 2m0 * 3m1 * 5m2 * 7m3 * 11m4 * …令 y = 2n0 * 3n1 * 5n2 * 7n3 * 11n4 * …如果 x 整除 y(y mod x == 0),则对于所有 i,mi <= ni。最大公约数最小公倍数x 和 y 的最大公约数为:gcd(x,y) = 2min(m0,n0...
2019-12-03 09:27:23 1218 2
原创 【C语言进阶剖析】30、C语言中的字符串
文章目录1 字符串的概念1.1 字符数组与字符串1.2 小秘密2 字符串字面量3 字符串的长度4 小结1 字符串的概念字符串是有序字符的集合字符串是程序的基本元素之一C 语言中没有字符串的概念C 语言中通过特殊的字符数组模拟字符串C 语言中的字符串是以 ‘\0’ 结尾的字符数组1.1 字符数组与字符串在 C 语言中,双引号引用的单个或多个字符是一种特殊的字面量存储于程...
2019-12-02 23:16:20 503
jieba-master.zip
2020-04-02
BCC 5.5.1.7z
2019-11-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人