潜心学习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是一级指针,所以都是地址,出错是因为你不知道二维数组的元素是一位数组,这个元素只是一个指针,不是这个一维数组的首元素,却是这个首元素的指针

    评论

报告相同问题?

悬赏问题

  • ¥15 一道python难题2
  • ¥15 一道python难题
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备