右左法则

今天讲了用右左法则来理解复杂的变量声明。总结起来就是以下几句话: 

先看右再看左,如果右边没有东西就是变量,有(就是函数,有【就是数组,然后看左边,有*就是指针,然后看是int还是char还是void等等。

然后举了几个例子进行练习:

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型数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值