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

指针数组和数组指针区别(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)与谁先结合,如果核心和*结合,表示核心是指针;如果核心和[]结合,表示核心是数组(找结合);之后再向外扩展(找修饰词)。

相关文章

德邦集成灶售后24小时联系方式维修查询实时反馈-今-日-资-讯

亲爱的用户朋友们,相信大家在使用德邦集成灶时,一定遇到过一些小麻烦,比如说,有时候会遇到无法解锁的情况。今天我就来和大家聊聊这个话题,从三个方面来分析一下:故障原因、常见问题、解决方法。如果在解决过程中遇到任何困难,可以拨打德邦集成灶的统一400客户服务电话——400-883-2086,我们的客服团

热恋热水器服务售后24H

热恋热水器售后服务热线400-883-2086热恋热水器是国内一家知名的品牌,以其可靠的品质和卓越的专业服务受到了消费者的广泛认可。为了方便消费者查询专业服务相关的问题,热恋热水器设立了全国统一电话查询中心,号码为400-883-2086(以产品说明书或保修卡电话为准)。无论您是遇到了产品使用问

热恋热水器服务售后24H

热恋热水器售后服务热线400-883-2086热恋热水器是国内一家知名的品牌,以其可靠的品质和卓越的专业服务受到了消费者的广泛认可。为了方便消费者查询专业服务相关的问题,热恋热水器设立了全国统一电话查询中心,号码为400-883-2086(以产品说明书或保修卡电话为准)。无论您是遇到了产品使用问

樱康热水器售后全国服务号码多少实时反馈-今-日-更-新

樱康热水器售后服务电话:400-883-2086樱康热水器24小时客服热线:400-883-2086樱康热水器24小时人工客服、线下专业全国网点及各地区 专业人员服务团队等专属服务,整个报修流程规范有序,后期同步跟踪查询公开透明。所有专业团队均经过专业培训、持证上岗,所用配件均为

贝雷塔热水器全国报修400热线

贝雷塔热水器全国统一售后服务电话:400-883-2086贝雷塔热水器维修服务,专业技术人员上门维护,现场为您解决问题,提供完善的保障服务。当日报修,就近安排,30分钟上门。贝雷塔热水器创建于1958年的,历经60余年的发展,从期初立业、到如今的信息电子相关多元拓展,已成为集消费