指针和数组的关系

本文深入探讨了C语言中二维数组与指针之间的交互机制,解释了`p=a`如何影响后续操作,以及如何通过指针访问二维数组元素,包括`p[1][2]`与`a[1][2]`的区别。
1.char **p, a[16][8]; 

问:p=a是否会导致程序在以后出现问题?为什么? 会,因为a的类型为char (*)[8], p只是一个指向指针的指针,没有数组类型信息。

p[1][2]和a[1][2]代表一样的意思吗?p = a; 问 a[1][2] = 1; 那么p[1][2]的值是多少 ?

我们应该知道 二维数组在内存中也是一维排布的
所以 a[1][2] 代表  第11个元素
我们再来看 p[1][2] 因为p的类型为 char**p  所以p[1][2] 代表的意思 *(*(p+1) + 2)  , p指向一个char*  所以p+1向前移动4个字节  后面+2再向前移动2个字节 一共6个字节  所以说 一样吗。

2.


选C:C是指针,肯定不为0.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值