c语言的左右法则

左右法则是理解和解析C语言中复杂声明的关键。它指示从最内层的圆括号开始,先向右阅读,再转向左,每次遇到括号就调整方向,直到完整声明解析完成。文中通过多个例子,如整型指针数组、函数指针变量等,详细解释了左右法则的应用,帮助读者掌握这一技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值