一、如果或&紧跟类型说明,则定义对象为指针或引用;如果或&出现在表达式中,则为解引用或取址符,e.g.
int i = 0;
int *ptr = &i; //*紧随int,故ptr为指针;&在表达式中,故为取址符
int &ref = *ptr; //&紧随int,故ref为引用;*在表达式中,故为解引用
二、const int 和 const * int
①const int * ptr;为常量指针
常量指针指向常量,可以改变对象但不可以改变对象的值。
②int *const ptr1 = &b;为指针常量
指针常量不能改变指向,但可以修改指向对象的值。
③一个普通指针不能指向常量。
三、数组
①多维数组的命名
类型说明符 数组名[常量表达式][常量表达式]
②多维数组的定义
e.g.
int a2d[][5] = {0, 1, 2, 1, 4, 7, 5, 4, 5, 7, 0, 8}
必须要有列!!!
四、指针与数组
①int 地址偏移一位,地址偏移四个字节。
e.g.
a2d[0] = 006FF844 a2d[0]+1 = 006FF848
②[]与*等价,*与&互逆。
③对于一维数组,地址+1相当于读取下一位的数
对于二维数组,地址+1相当于读取下一行的数