指针数组和数组指针之“终极区分办法”

本文深入解析了指针数组与数组指针的概念,通过对比定义方式,阐述了两者之间的区别。指针数组是数组的元素为指针,而数组指针是指向数组的指针。文章通过实例讲解了不同类型的指针与数组结合的定义方法。

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

【概念】

指针数组:顾名思义,就是指数组的元素都是指针的数组。指针是定语,数组是中心词,指针修饰数组---指针的数组,也就是指                      针构成的数组。

数组指针:顾名思义,就是指向数组的指针。数组是定语,指针是中心词,数组修饰指针----数组的指针

【定义方式】

先看看基本类型变量定义方法,

int a;

说明:这是定义一个int型变量,int修饰的是a,所以a是int型变量

int *a;

说明:有了*这个符号来修饰a,那么a就变成了一个指针,而int不再修饰a,而是修饰*a了,也就是说*a是一个int型变量,所以a指向了一个int型变量

同理,

int a[5];

说明:[5]修饰a,于是a就变成了一个地址,int修饰a[5],而不是修饰a,所以这个数组的所有元素都是int型变量

int *a[5];

说明:此时*修饰的是a[5],即修饰数组的全部元素,所以数组a中的全部元素都是指针变量,而int则是修饰*a[5],也就是说(*a[n])(其中n=0~5)是一个int型变量,换言之,数组中的所有元素都是指向int型变量的指针。

int (*a)[5];

说明:此时*修饰的是a,而不是a[5],所以a才是指针变量,int则是修饰(*a)[5],所以数组元素都是int型变量,换句话说指针a指向了一个元素为int型变量的数组。

【总结】

先看指针符号修饰谁;再看类型关键字修饰谁。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值