Page 2
前言
最近看了《C Prime Plus》第六版。感觉这本是写真的不错,说起来我一个计算机的学生现在才开始这本书实在是有点慢了,虽然学校在大一上的时候教过这门课,但是和这本书的内容相比简直就是弱爆了。在看这本书的时候,我会把一些比较容易忘记的知识点记下来,但是想想可能也有很多的小白和我有一样的问题,所以干脆就写这一系列的博客,一方面方便我回顾,另一方面可以帮助有同样问题的小白。
我把书中的代码和课后习题放在了自己的github里面了,地址是
https://github.com/alon-han/CPrimePlus-code
欢迎大家点个star给我
提示:知识点的形式比较零散,如果想看比较连贯的知识点还是需要去书的。
内容
1
只有在函数原型和函数定义中才能使用int array[]代替int * arrary
2
在函数声明时可以加入const关键字,这样会让函数认为该变量是常量,并且在处理时注意。但是该举动并不要求传入的变量是常量
3
每个C函数都是平等的,即可以调用其他函数,也可以被其他函数调用。但是main()函数有些特殊:当main()函数和其他函数放在一起的时候,最开始执行的是main()函数的第一条语句。main()函数可以被自己或者是其他函数调用,但是很少这样做
4
函数的返回值类型如果和声明的不匹配,则将会被强制转化为声明的返回类型
5
间接运算符 “*”
ptr = &pooh;
val = *ptr
=============
//相当于下面的这条语句
=============
val = pooh
6
不初始化数组,其存储的值都是垃圾变量,如果初始化部分数组,剩余的变量都会被初始化为0
7
声明数组时最好使用符号常量表示数组大小,可以是程序中的数组大小适中一致
8
在C语言中 指针+1表示增加一个存储单元
9
切记:不要使用未初始化的指针,未初始化的指针其值为随机值,所以解引用会修改随机地址上的数值,后果可能很严重也可能没有影响
10
const double * pointer;
// 不能通过*pointer修改值
// 可以修改pointer本身的值
==========================
double * const pointer;
// 可以通过*pointer修改值
// 不能修改pointer本身的值
==========================
const double * const pointer;
// 即不可以修改解引用的值
// 也不可以修改本身的值
11
在函数中传递二维数组需要这样子声明
void function(int (* pt)[4]);
void function(int pt[][4]);
12
使用双引号括起来的内容称为“字符串字面量”或者是“字符串常量”,被视为指向字符串存储位置的指针