应该你第二层for没有加 { }
#include <iostream>
using namespace std;
int main()
{
int a[2][3] = { 2,3,4,556,6,6 };
int(*p)[3] = a;
for (int i = 0; i < 2; ++i)
{
for (int j = 0; j < 3; ++j)
{
cout << "value = " << *(*(p+i)+j) << endl;
}
}
}
效果:
#include <stdio.h>
#include <math.h>
void main()
{
int a[2][3] = {1, 2, 3, 4, 5, 6};
int i, j;
int(*p)[3] = a;
for (i = 0; i < 2; i++)
{
for (j = 0; j < 3; j++)
{
printf("%d ", *(*(p + i) + j));
}
}
}
#include<stdio.h>
int main()
{
int a[2][3]={2,3,4,556,6,6};
int i,j;
int (*p)[3]=a;
for(i=0;i<2;i++){
for(j=0;j<3;j++){
printf("%d",*(*(p+i)+j));
}
}
return 0;
}
输出结果:
#include<stdio.h>
int main()
{
int a[2][3]={{2,3,4},
{556,6,6}};
int i,j;
int (*p)[3]=a;
for(i=0;i<2;i++){
for(j=0;j<3;j++){
printf("%5d",*(*(p+i)+j)); //修改格式为%5d 设置域宽为5
}
printf("\n"); //输出换行
}
return 0;
}
修改后输出结果如图:
希望对题主有所帮助,望采纳!!