DATE 9

C语言:
用变量a给出下面的定义:
①一个整型数;
int a;
②一个指向整型数的指针;
int *a;
③一个指向指针的指针,它指向的指针是指向一个整型数;
int **a;
④一个有10个整型数的数组;
int a[10];
⑤一个有10个指针的数组,该指针指向一个整型数;
int *a[10];
⑥一个指向有10个整形数组的指针;
int (*a)[10];
⑦一个指向函数的指针,该函数有个整型参数并返回一个整型数;
int (*a) (int);
⑧一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数;
int (*a[10])(int) ;

定义变量或者解析定义的时候,用到的左右法则:
===》int (*a[10])(int);
首先找到变量名a,先往右看遇到了[ ],说明a是一个数组,[ ]里面是个10,表明数组中有 10个元素:【这个时候应该条件反射问自己,数组里面保存的是什么类型的元素?】
再继续往右看,遇到了),这个时候调转方向往左看!遇到了*,,表明数组里面保存的变量是指针变量!【这个时候又应该问自己,这个指针变量指向的是什么地方?】继续往左看遇到了(,这个时候又要调转方向,往右看!遇到了(),说明指针变量指向的是函数,()里面是int,表明函数的形参只有一个,并且是整型的参数,又调转方向往左看,遇到int,说明函数的返回值是int类型;

int add(int a,int b);
函数的名字;
函数的形参;
函数的返回值;

左右法则:首先找到变量名,然后往右看,每次遇到括号调转方向,直到把定义解析完毕!
===》强调的是:
1、遇到数组的时候,应该问自己:这个数组里面有多少个元素,元素是什么类型的;
2、遇到指针的时候,应该问自己:指针指向的变量是什么类型;

3、遇到函数的时候,应该问自己:函数的形参有没有,有的话有几个,分别是什么类型 的,函数的返回值又是什么类型的;


今天学了指针的命名,,感觉比较绕,,但是学会了方法,慢慢啄米,,一定会弄懂得!!!

猜你喜欢

转载自blog.csdn.net/Bruce_4/article/details/80384884
9