摘要: 《C语言进阶剖析》学习笔记 本文总结自狄泰软件学院唐佐林老师的《C语言进阶剖析》课程,在此推荐给想深入学习C语言的同学! 狄泰软件学院QQ群:199546072 课程代码已上传到github:https://github.com/shuaiwangshi/C_Course 阅读全文
posted @ 2019-11-13 23:30 Hengs 阅读(2233) 评论(0) 推荐(2) 编辑
摘要: 第48课 - 函数设计原则(完结) 1. 函数从意义上应该是一个独立的功能模块 2. 函数名要在一定程度上反映函数的功能 3. 函数参数要能够体现参数的意义 4. 尽量避免在函数中使用全局变量 5. 当函数参数不应该在函数体内部修改时,应加上const声明 6. 如果参数是指针,且仅作输入参数,则应 阅读全文
posted @ 2019-11-13 23:26 Hengs 阅读(422) 评论(0) 推荐(0) 编辑
摘要: 第47课 - 递归函数分析 阅读全文
posted @ 2019-11-13 23:23 Hengs 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 第46课 - 函数与宏分析 1. 函数与宏 (1)宏是由预处理器直接替换展开的,编译器不知道宏的存在,因此参数无法进行类型检查 函数是由编译器直接编译的实体,调用行为由编译器决定 (2)多次使用宏会增大代码量,最终导致可执行程序的体积增大,对于嵌入式设备而言,设备资源有限,这个还是比较重要的 函数是 阅读全文
posted @ 2019-11-13 23:22 Hengs 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 第45课 - 函数参数的秘密(下) 阅读全文
posted @ 2019-11-13 23:19 Hengs 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 第44课 - 函数参数的秘密(上) 1. 函数的参数 (1)函数参数在本质上与局部变量相同,都在栈上分配空间 (2)函数参数的初始值是函数调用时的实参值 (3)C标准只规定了 必须要将每个实参的具体值求出来之后才能进行函数调用,并没有规定函数参数的求值顺序,求值顺序依赖于编译器的实现 比如 void 阅读全文
posted @ 2019-11-13 23:17 Hengs 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 第43课 - 函数的意义 1. C语言中的函数 追溯一下C语言发展的历史,我们知道C语言在早期是用在科学计算上的,而科学计算就是使用各种算法处理数据。 在C语言中就是使用函数实现算法。 2. 函数的意义 (1)模块化程序设计 (2)C语言中的模块化 ==> 使用函数完成模块化编程 3. 面向过程的程 阅读全文
posted @ 2019-11-13 23:14 Hengs 阅读(750) 评论(0) 推荐(0) 编辑
摘要: 第42课 - 内存操作经典问题分析二 1. 常见内存错误 (1)结构体成员指针未初始化 (2)结构体成员指针未分配足够的内存 (3)内存分配成功但并未初始化 (4)内存操作越界 【常见内存错误1】 1 #include <stdio.h> 2 #include <malloc.h> 3 4 void 阅读全文
posted @ 2019-11-13 23:10 Hengs 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 第40课 - 程序的内存布局 阅读全文
posted @ 2019-11-13 23:09 Hengs 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 第41课 - 内存操作经典问题分析一 1. 野指针 (1)野指针指的是 指针变量的值是非法的内存地址,操作野指针会导致程序运行出错。 野指针不是NULL指针而是指向了非法地址;NULL指针并没有危害而且很好判断和调试。 (2)C语言中无法判断一个指针所保存的地址是否合法 (3)野指针产生的原因 ※  阅读全文
posted @ 2019-11-13 23:09 Hengs 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 第38课 - 动态内存分配 1. 动态内存分配的意义 (1)C语言中的一切操作都是基于内存的 (2)变量和数组都是内存的别名 内存分配由编译器在编译期间决定 定似数组的时候必须指定数组长度 数组长度是在编译器就必须确定的 需求 : 程序运行的过程中,可能需要使用一些额外的内存空间 2. malloc 阅读全文
posted @ 2019-11-13 23:08 Hengs 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 第39课 - 程序中的三国天下 1. 程序中的栈 1 2. 函数调用过程 1 2. 程序中的堆 1 3. 程序中的静态存储区 1 阅读全文
posted @ 2019-11-13 23:08 Hengs 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 第37课 - 指针阅读技巧分析 阅读全文
posted @ 2019-11-13 23:07 Hengs 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 第36课 - 函数与指针分析 1. 函数类型 (1)C语言中的函数有自己特定的类型,函数的类型由返回值、参数类型和参数个数共同决定 比如,int add(int i, int j) 的类型为 int(int, int) (3)C语言中通过typedef为函数类型重命名,typedef return_ 阅读全文
posted @ 2019-11-13 23:06 Hengs 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 第35课 - 数组参数和指针参数分析 1. 数组参数和指针参数 阅读全文
posted @ 2019-11-13 23:05 Hengs 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 第33课 - main函数与命令行参数 阅读全文
posted @ 2019-11-13 23:04 Hengs 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 第34课 - 多维数组和多维指针 阅读全文
posted @ 2019-11-13 23:04 Hengs 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 第32课 - 数组指针和指针数组分析 1. 数组的类型 C语言中的数组有自己特定的类型,数组的类型由 元素类型 和 数组大小 共同决定。比如 int array[5] 的类型就是 int[5];float farray[10] 的类型就是 float[10]。 2. 定义数组类型 C语言中通过typ 阅读全文
posted @ 2019-11-13 23:03 Hengs 阅读(323) 评论(0) 推荐(0) 编辑
摘要: 第31课 - 字符串典型问题分析 阅读全文
posted @ 2019-11-13 23:02 Hengs 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 第30课 - C语言中的字符串 1. 字符串的概念 (1)字符串是有序字符的集合 (2)字符串是程序中的基本元素之一 (3)C语言中没有字符串的概念 C语言中通过特殊的字符数组模拟字符串 C语言中的字符串是以 '\0' 结尾的字符数组 // 回忆前面学过的转义符 \ ,'\0' 即八进制的0表示的字 阅读全文
posted @ 2019-11-13 23:01 Hengs 阅读(410) 评论(0) 推荐(0) 编辑