指针的定义:
1.定义一个整型变量:
int a;
2.定义一个整型指针:
int *a;
3.定义一个指向整型变量指针的指针:
int * *a;
*的运算是自右向左进行的,可以将其看为int *(*a),可以将其分成两部分来看,第一部分是int *是一个指向整形的指针,
第二部分是(*a)是一个指针变量,也就是说(*a)是一个指向整型的指针,那么a则是指向指针的指针
4.定义一个数组:
int a[10];
5.定义一个数组类型的指针:
int *a[10];
首先它是一个数组,数组中的数据是指向指针指针类型的
6.定义一个指向有10个整型数数组的指针:
int (*a)[10];
首先是一个指针,该指针指向一个数组,该数组的每个元素是一个有10个整型数的数组
即是一个二维数组,共有10列
说白了就是指针数组,数组每个元素又是一个有10个元素的数组
int (*a)[10];
7.定义一个指向函数的指针,该函数的返回值是int类型,有一个int类型的参数
int (*a) (int)
首先是一个指针,该指针指向函数地址a,并且该指针指向的是int型,函数参数是int类型
int *a是定义一个指向整型a的指针,指向函数地址时要带括号,就是int (*a),然后再加上括号写参数。
8.定义一个有10个指针的数组,该指针指向一个函数,并且该函数有一个int型参数,返回值是int型
int (*a[10]) (int);
首先是一个数组,每个数组元素是一个函数指针,函数指针就是函数的首地址,一共有10个这样的地址,所以有a[10]
但是每个元素是指针类型的,所以有*a[10],每个元素都是一个函数地址所以要用括号括起来。
9.小窍门:
如果是指针的话,a和[10]要分开,也就是要给a带括号
如果是数组的话要给整体带括号