Page 5
前言
最近看了《C Prime Plus》第六版。感觉这本是写真的不错,说起来我一个计算机的学生现在才开始这本书实在是有点慢了,虽然学校在大一上的时候教过这门课,但是和这本书的内容相比简直就是弱爆了。在看这本书的时候,我会把一些比较容易忘记的知识点记下来,但是想想可能也有很多的小白和我有一样的问题,所以干脆就写这一系列的博客,一方面方便我回顾,另一方面可以帮助有同样问题的小白。
我把书中的代码和课后习题放在了自己的github里面了,地址是
https://github.com/alon-han/CPrimePlus-code
欢迎大家点个star给我
提示:知识点的形式比较零散,如果想看比较连贯的知识点还是需要去书的。
内容
1、结构体
结构声明并未创建实际的数据对象,知识描述了该对象由什么组成;
如果结构体的声明在一个函数内部,那么只有该函数可以使用它。
自动存储类别的变量会存储在栈中,而编译器的栈的大小一般是固定的,故大型结构数组极有可能会栈溢出。
2、指向结构体的指针
假设一个指向结构体的指针him,该结构体中存在一个float类型的变量income则
him->income == (*him).income
3、命名空间
C语言使用namespace表示程序中的各个部分。命名空间分类别,在同一个作用域中结构标记、联合标记、枚举标记共享相同的命名空间,该空间和普通变量的命名空间不同
4、理解* () []优先级
- 数组名中[]与函数名中()的优先级>*的优先级
- [] ()优先级相同并都从左向右结合
int * array[10]; 指针数组
int (* array)[10]; 指向数组的指针
char * fump(int ); 一个返回字符指针的函数
char (* fump)(int ); 一个指向函数的指针,该函数的返回值为char,接受一个int类型的参数
char (* fump[3])(int);一个包含3个元素的数组,每一个元素是一个指向函数的指针
- 总结:第一个与变量名结合的符号决定了函数的性质,其余的符号综合起来决定了变量的类型。