C语言复杂定义的读法(右左法则)

右左法则的运用:

右左法则:先找到变量,先向右边看再向左边看,看到括号代表函数,方括号代表数组,*代表指针。


int *(*(*arr[5]) () ) ();

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


fioat (*(*b())【】)();

b是函数,该函数形参为空,返回值为数组指针,该指针指向一个函数指针数组,数组的元素指向一个形参为空,返回值为float的函数。


void*(*c)(char a,int (*b)());

c是一个函数指针变量,指向一个有两个参数的返回值为void*函数,第一个形参为char,第二个是函数指针,改指针指向一个形参为空,返回值为int的函数。


float (*(*e【10】)(int*))【5】;

e是函数指针数组,数组里的元素指向一个形参为int*,返回值为数组指针,指向的数组为float型数组。

猜你喜欢

转载自blog.csdn.net/zwt0112/article/details/53366257