#include
using namespace std;
int main()
{
int a[3][4] = {{1,3,5,7},{9,11,13,15},{17,19,21,22}};
int (* p)[4];
for(p = a; p < a + 3; p++)
{
cout << ((p + 0)) << " ";
cout << *p <<endl;
}
cout << endl;
return 0;
}
本来我是这么想的,令p = a后,p将指向二维数组中首元素的地址,而这个首元素是由4个整型元素组成的一维数组。想用cout << *p;输出每一行中的第一个元素,即a[0][0], a[1][0], a[2][0], 可是,为什么不管是cout << *p; 还是 cout << p; 都是输出地址信息
C++中数组指针怎么输出每一个所谓的一维数组的头一个元素
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 普通网友 2014-05-26 14:51关注
p是二级指针,*p是一级指针,所以都是地址,出错是因为你不知道二维数组的元素是一位数组,这个元素只是一个指针,不是这个一维数组的首元素,却是这个首元素的指针
解决 无用评论 打赏 举报
悬赏问题
- ¥15 素材场景中光线烘焙后灯光失效
- ¥15 请教一下各位,为什么我这个没有实现模拟点击
- ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 保护模式-系统加载-段寄存器