右左法则


规则中符号: 
 *  读作“指向...的指针”   
 []   读作“...的数组”   
 ()  读作“返回...的函数” 
1. 起始点 : 找到声明中的标识符,它就是你分析的起始点,读作:“$(Identifier)是...”; 
2. 看你的标识符右边:

 a)发现“()”,这是一个函数声明,这时你可以说“是返回...的函数”; 
 b)发现“[]”,这是一个数组声明,这时你可以说“是...的数组”; 
 c) 继续向右,直到遇到右边声明结束或者遇到“)”,继续下面。 
3. 看你的标识符左边:

如果碰到的不是我们在0.中定义的符号,则直接说出它;否则按照0.中定义的符号含义说出。继续向左,直到遇到左边声明结束或“(”。 
4. 重复2和3的步骤,直到声明分析完毕。 

 

例1详解 :int*p[]; 
1) 找到标识符:p,读作:“p是...”; 
2) 向右看:发现一“[]”,然后遇到右边声明结尾,读作:“p是...的数组”; 
3) 向左看:发现一“*”, 读作:“p是指向...的指针的数组”; 
4) 继续向左看:没有发现0.中定义的符号,则分析结束,读作:“p是指向int类型的指针的数组”。

 
例2详解 :int *(*func())(); 
1) 找到标识符:func,读作:“func是...”; 
2) 向右看:发现一“()”,然后遇到“)”,读作:“func是返回...的函数”; 
3) 向左看:发现一“*”,然后遇到“(”,读作:“func是返回指向...的指针的函数”; 
4) 向右看:发现一“()”,然后右边声明结束,读作:“func是返回指向返回...的函数的指针的函数”; 
5) 向左看:发现一“*”,读作:“func是返回指向返回指向...的指针的函数的指针的函数”; 
6) 向左看:没有发现.中定义的符号,则分析结束,读作:“func是返回指向返回指向int类型的指针的函数的指针的函数”。 

例3详解 :char(*a())[8]; 
1.找到标识符a: a是... 
2.right 发现(),然后遇到“)”: a是返回...的函数 
3.left 发现*,然后遇到“(”: a是返回指向...的指针的函数 
4.right 发现[8]而且右边已结束: a是返回指向8个...元素的数组的指针的函数 
5.left 没有发现.中定义的符号 : a是返回指向8个char类型元素的数组的指针的函数

 

例4详解 :
char *a[10]和char(*a)[10]的区别。

char *a[10]:  a先与[10]结合,是一个数组,然后与*结合,说明这个数组里面的元素是指针类型 
char (*a)[10]: a先与*结合,说明是一个指针,然后与[10]结合,说明这个指针指向的是一个具有10个元素的一维数组

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值