首页 > 代码库 > C语言学习笔记(6):如何从变量声明的表面上来区分指针数组和数组指针
C语言学习笔记(6):如何从变量声明的表面上来区分指针数组和数组指针
举例:
int *p[5]是指针数组
int (*p)[5]是数组指针
区分两者只要看变量名p周围的修饰符即可。
这里要明确两点:
1、不论int *p[5]还是int (*p)[5]都不应该看成一个整体,而应该看成一些修饰符来修饰变量p,从而使p得到准确定义;
2、[]的优先级要比*高,相同优先级修饰符,采取从左向右的编译方式。
*p[5]由于[]优先级高所以[]先修饰变量名p,所以p是一个数组名,然后再看其它修饰符,可以发现是一个int * 类型的数组,即p为指针数组。
(*P)[5]由于()和[]两者优先级相同,所以从左向右编译,那么*先修饰p,所以p是一个指针变量,然后再看周围的其它修饰符,可以发现p为一个int数组指针。
C语言学习笔记(6):如何从变量声明的表面上来区分指针数组和数组指针
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。