目录
0 括号优先 先右后左 由近及远
十二字真言,用于定义变量时,以及,起别名时。
指针不是地址。
指针中存储的是它所指向对象的地址。(106页. C Primer Plus 6版 中文2016.4第1版)
1 int a;
a是变量,是整型变量。
2 int* a;
a是指针变量,是整型指针变量,整型指针记录整数类型存储区的地址。
3 int a[3];
a是数组,数组有3个元素,每个元素都是整数类型。
4 int* a[3];
a是数组,数组有3个元素,每个元素都是指针,是整型指针,整型指针记录整数类型存储区的地址。
a是数组,什么数组?指针数组,是整型指针数组。
5 int (*a)[3];
a是指针,是数组指针,是数组的指针,记数组的地址,数组有3个元素,每个元素都是整数类型。
a是指针,什么指针?数组指针,是整型数组指针。
6 int a(int);
a是函数,形参是int,返回值是int。
7 int* a(int);
a是函数,形参是int,返回值是指针,指针记录整型存储区的地址。
a是函数,形参是int,返回值是指针,是整型指针——int*。
8 int* (*a)(int);
a是指针,是函数指针,函数的形参是int,返回值是整型指针。
9 typedef int* a_t;
a_t是别名,是整型指针的别名。以下两行等效:
int* p;
a_t p;
10 typedef int* (*a_t)(int);
a_t是别名,是指针的别名,是函数指针的别名,指针指向函数的地址,函数形参int,返回值是int*。
11 倒推练习
为了更加熟练,请尝试将上述10个条目中的加粗汉字,反推为代码语句 o.o