在经过2个星期的学校后,终于把《C专家编程》看完了,这确实一本好书,在许多方面让我对C语言有了新的认识,下面是我的一点学习笔记:
1、引用只是对现有变量起的别名,它有三个特性:
(1)不能用空的引用。这一点在使用函数的返回值为指针的时候是要注意!
(2)必须先初始化。
(3)有用的对象,只能是先被初始化的那一个。
2、指针常量和常量指针:
const int *p; 和 int const *p;都是一样的(指向常量的指针):
int *const p;是常量指针。记住这一点:const修饰紧接在后面的类型(int),其他时候修饰在前面的*(指针)!
3、函数重载与重写:
重载发生于同一个作用域内有两个或更多个函数具有相同的名字但形参的数目或类型不同。
重写发生在派生类与基类的虚函数具有相同名字和形参(数目和类型)。
4、变量声明的规则:
A、声明从他的名字开始读取,然后按照优先级的顺序依次读取。
B、优先级高低的顺序是:
(1)声明中被括号括起来的部分
(2)后缀操作符:()表示这是一个函数,[ ]表示一个数组
(3)前缀操作符:‘*’表示“一个指向·····的指针”
C、如果Const和(或)volatile关键字的后面紧跟类型说明符,那他就作用于类型说明符;其他情况下,const和(或)volatile作用于左边紧跟的指针星号。
5、数组和指针相同的时候:
(1)表达式中的数组名被编译器当作一个指向该数组第一个元素的指针。
(2)下标只是与指针的偏移量相同。
(3)在函数参数的声明中,数组被编译器当作指向该数组第一个元素的指针。
6、实参与所匹配的形参:
实参 形参
char c[8][10] 数组的数组 char (*c)[10] 数组指针
char *c[15] 指针数组 char **c 指针的指针
char (*c)[64] 数组指针 char (*c)[64] 不改变
char **c 指针的指针 char **c 不改变