首页 家电百科 实时讯息 常识
您的位置: 首页 > 常识 >

指针数组和数组指针区别(C语言学习篇-----“指针数组”与“数组指针”)

100次浏览     发布时间:2024-09-09 08:34:26    


指针数组和数组指针


本质区别

指针数组:实质是一个数组,指针是修饰词,表明这个数组中存储的内容全部是指针变量

数组指针:实质是一个指针,数组是修饰词,表名这个指针指向的是一个数组

我们从以下几个常见的表达式来分析:

int *p[5];

int (*p)[5];

int *(p[5]);

表达式分析

首先为了分析上面3个表达式, 我们需要说明表达式中出现的运算符(* 和 [])的优先级。

C语言运算符优先级

从上面的图中,我们可以看出优先级:[] > *

OK, 接下来我们开始分析:

  • int *p[5]

因为[]的优先级比*高,因此变量p先于[5]结合,故p是数组, 而int *就是修饰词,总体就是p是一个数组,数组有5个元素,数组中的元素都是指针,指针指向的元素类型是int类型的;整个符号是一个指针数组。

  • int (*p)[5]

因为()的原因,p与*先结合,因此p是一个指针,然后再与[5]结合,此时的[5]并成了修饰词;总体就是p是一个指针,指针指向一个数组,数组有5个元素,数组中存的元素是int类型; 整个符号是一个数组指针。

  • int *(p[5])

[]的优先级本来就比*,再加上符号()的作用,p肯定先与[5]结合了,因此p是一个数组, int *是修饰词,总体就是p是一个数组,数组有5个元素,数组中的元素都是指针,指针指向的元素类型是int类型的;这与第一种情况一致(其中运算符()可有可无),整个符号是一个指针数组。

总结

首先要知道一般规律:int *p;(p是一个指针); int p[5];(p是一个数组)

然后判断核心(变量名p)与谁先结合,如果核心和*结合,表示核心是指针;如果核心和[]结合,表示核心是数组(找结合);之后再向外扩展(找修饰词)。

相关文章

权重补涨,市场有最新的变化?#股票 #大盘 #交易 #股民

兄弟们,今天的市场平开低走,再走修复,上演了小v的逆转,再次验证了老陈的判断,现在的节奏把控至关重要,稍有不慎就会出错。那么老陈从上周明牌剧透的超跌的机会来了,接着三连阳之后哈进上推一,调整是叫倒车接人。那么现在继续强调低息的节奏,市场完全按照剧本来走,那么为什么会是这样子呢?其实兄弟们现在的市场就

我在宋韵里等你

杭州,这座承载着南宋古都记忆的城市,宛如一幅古老而典雅的画卷,在岁月的长河中静静铺展。这里孕育了独特的南宋文化,文化的基因深深融入城市的血脉。在这座城市的怀抱中,浙江省杭州市胜利山南小学静静伫立,如璀璨的明珠镶嵌在南宋皇城遗韵与现代教育的交汇点上。学校有一座别具一格的博物馆——“皇城根”学研基地。围

SKG燃气灶售后维修服务中心

SKG燃气灶售后服务电话400-883-2086在领域内,产品的安全性、品质与售后服务共同构成了品牌的核心竞争力。SKG燃气灶凭借在办公与家居用品领域多年的深厚积累、持续的技术创新以及对品质的严格把控,在竞争激烈的市场中树立了高贵的口碑,深受广大客户的信赖与青睐。SKG燃气灶专注于产品的研发

特朗普政府正式关闭美国国际开发署

美国特朗普政府1日宣布,即日起正式关闭运营近64年的美国国际开发署。美国国务卿鲁比奥当天发表声明说,美国国际开发署1日起正式停止执行对外援助任务,部分符合特朗普政府政策的剩余项目移交给美国国务院实施。声明说,美国国际开发署数十年来支出超过7150亿美元,用美国纳税人的钱创建了一个“遍布全球的非政府组

及时语|若上不了一个好大学,那就上好一个大学

十二年寒窗,定格在高考出分页面。这些天,网络信号载着千家万户的悲喜穿空而过——班级群红包雨与“666”齐飞,某个头像却长久沉默,搜索框里“复读”二字打了又删;朋友圈里,有人捷报配图,马赛克遮不住高分光芒;有人默默分享《凉凉》,“进厂求带”道不尽心酸过往……你若被失落裹住,请别苛责自己。天亮前,夜最黑