您的位置:首页 > 编程语言 > C语言/C++

c语言的左右法则

2016-11-22 20:32 232 查看
1.左右法则:首先从最里面的圆括号看起,然后往右看,再往左看。每当遇到圆括号时,就应该调转阅读方向。一旦解析完圆括号里的内容,就跳出圆括号。重复这个过程直到整个声明解析完毕。

2.左右法则是用来理解复杂的声明的。

3.左右法则的例子
int *a[10];  
a是一个整型指针数组

int(*a)[10];  
a是一个数组指针变量

int(*a)(int);

a是一个函数指针变量,指向的是形参为int,返回值为int的函数

int(*a[10])(int);
a是一个函数指针数组,该数组里的元素指向形参为int,返回值为int的函数

int*(*(*fp1)(int))[10];
fp1是一个函数指针变量,指向的是形参为int,返回值为数组指针,该指针指向整型指针数组

int *( *( *arr[5])())();  
arr是一个函数指针数组,该数组里的元素指向一个形参为空,返回值为函数指针,该指针指向一个形参为空,返回值int*的函数

float ( * ( *b()) [] )();         
b是一个函数,该函数形参为空,返回值为数组指针,该指针指向一个函数指针数组,数组的元素指向一个形参为空,返回值位float的函数。

void * ( *c) ( char a, int (*b)());        
C是一个函数指针变量,指向一个有两个参数的返回值为void*的函数,第一个形参为char,第二个形参为函数指针,该指针指向一个形参为空,返回值
为int的函数。

float ( * ( * e[10]) (int *) ) [5];
e是一个函数指针数组,数组里元素指向一个形参位int*,返回值为数组指针,指向的数组为float型数组。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐