C语言-指针数组和指针数组

本文深入探讨了指针数组与数组指针的概念,解释了两者之间的区别与联系。指针数组是一个数组,其元素为指针类型;而数组指针则是指向数组的指针,通常用于遍历数组的行。文章通过具体示例,如int *p[n]与int (*p)[n]的对比,帮助读者理解这两种数据结构的使用场景。

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

指针数组

本质是数组
只不过呢,它里面存放的数据类型不是int,也不是char这类基本类型,而是一个指针类型,说白了就是地址,所以叫指针数组! 记住:是存放指针的数组!
在这里插入图片描述

int *p[n]

数组指针 (行指针)

本质是指针
只不过是指向一个数组的指针,也称之为“行指针”
在这里插入图片描述

int (*p)[n]  

p是一个指针,指向一个int类型的一位数组,这个一位数组的长度是n。也就是说执行p+1时,p要跨过n个int类型数组的长度。

int a[3][4];  //定义一个二维数组
int(*p)[4];   //该语句是定义一个数组指针,指向含4个元素的一位数组  
p=a; //将该二维数组的首地址赋值给p,也就是a[0]或&a[0][0]  
p++; //该语句执行过后,也就是p=p+1;p跨过行a[0][]指向了行a[1][]

其他

参考 【编程经验】关于数组指针与指针数组的解释

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

氦客

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值