源代码://用指针变量输出二维数组的值#include<iostream>using namespace std;int main(){int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},i,j,*p;p=&a[0][0];for(i=0;i<3;i++){for(j=0;j<4;j++)cout.width(4);cout<<*(*(a+i)+j);cout<<endl; //预期输出3*4的整齐数组}for(i=0;i<3;i++) //输出指针地址{for(j=0;j<4;j++)cout<<*(a+i)+j<<" ";cout<<endl;}cout<<endl;return 0;}但结果显示为:
1 回答
跃然一笑
TA贡献1826条经验 获得超6个赞
程序没有错,for循环中要做的事必须放在大括号中,否则只执行后面一句,像你的程序中for(j=0;j<4;j++)
cout.width(4);cout<<*(*(a+i)+j); 实际上这个for循环只执行cout.width(4);而不执行后面一句,改成下面这样:
#include<iostream>
using namespace std;
int main()
{
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}},i,j,*p;
p=&a[0][0];
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
cout.width(4);
cout<<*(*(a+i)+j);
}
cout<<endl; //预期输出3*4的整齐数组
}
for(i=0;i<3;i++) //输出指针地址
{
for(j=0;j<4;j++)
{
cout<<*(a+i)+j<<" ";
}
cout<<endl;
}
cout<<endl;
return 0;
}
添加回答
举报
0/150
提交
取消