【C】指针数组与数组指针

本文详细介绍了C++中的数组指针和指针数组的区别。数组指针是一个指针变量,用于指向二维数组的一行,如`int(*p)[4]`,在执行`p++`时会跳过4个整型元素的大小。而指针数组是一组指针,每个元素可以存储变量地址,如`int*p[n]`,执行`p+1`时则指向下一个指针元素。理解这两种概念对于处理二维数组和动态内存分配至关重要。

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

数组指针(也称行指针)

int (*p)[n]

()的优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,要执行p+1时,要跨过n个整型数组的长度

如果要将二维数组赋给一指针,应这样赋值:

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

指针数组

int *p[n];
[]优先级高,先于p结合成一个数组,再由int *说明这是一个整型指针数组,
它有n个指针类型的数组元素。这里执行p+1时,则p指向下一个数组元素,
p[0],p[1],p[2]....p[n-1],而且他们分别是指针变量可以用来存放变量地址

数组指针只是一个指针变量,专门用来指向二维数组的,它占有内存中的一个只针对额存储空间。指针数组是多个指针变量,以数组的形式存在内存中,占有多个指针的存储空间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值