源代碼://用指針變量輸出二維數組的值#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
提交
取消