C语言基础已经看完,接下来看C语言深度解析,做好笔记以便复习。
第一章:关键字
1.定义;定义就是创建一个对象,为这个对象分配内存并给它取上一个名字。这也是和声明的最大的区别。
最冤枉的关键字----sizeof ,break和continue 。break是中指本层循环,而continue是终止本层中的本次循环。
2.const关键字也许该被替换成readonly 被const 修饰的值不是常量,而是只读变量。
3.const int *p; int const *p ; int *const p ;const int *const p ;
4.union 关键字 大小端的判断。
第二章:符号
算数符优先级问题。
第三章预处理。
1,宏定义 :数值宏定义 字符串宏定义 宏定义表达式。
2,条件编译:
3,内存对齐:内存对齐遵守两原则。
第四章:指针和数组
一个变量的地址叫做指针,&a 和&a[0]的值相同但意义不一样,其实了可以按照二维数组的想法去理解。a还是常量
。数组和指针没有任何关系,只是他们经常穿着相似的衣服逗你玩。指针就是指针,在32位机上永远占四个字节,
数组就是数组其大小和元素的类型和个数有关系。
第五章:内存管理
静态区:保存自动全局变量和static变量,栈:保存局部变量,堆:由malloc 和free系列函数分配的空间。free(p)之后没有置NULL 的叫做野指针。