潜心学习C_plus_plus 2014-05-26 13:05 采纳率: 0%
浏览 2019

C++中数组指针怎么输出每一个所谓的一维数组的头一个元素

#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; 都是输出地址信息

  • 写回答

1条回答

  • 普通网友 2014-05-26 14:51
    关注

    p是二级指针,*p是一级指针,所以都是地址,出错是因为你不知道二维数组的元素是一位数组,这个元素只是一个指针,不是这个一维数组的首元素,却是这个首元素的指针

    评论

报告相同问题?

悬赏问题

  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题