C++ 指向数组指针 for循环嵌套,谁能告诉我这个怎么算?
#include<iostream>usingnamespacestd;inta[][3]={1,2,3,4,5,6,7,8,9};intmain(){int(*pa)[...
#include <iostream>
using namespace std;
int a[][3] ={1,2,3,4,5,6,7,8,9};
int main()
{
int (*pa) [3] (a);
//这里是定义指向函数组a的指针 是不是 相当于(*pa)[3](a)=&a[ ] [3]? 但是名称不太对啊。。
for(int j=0;i<3;j++)
{
cout<<"\n";
for(int j=0;i<3;j++)
{
cout<<*(*(pa+i)+j)<<" ";
}
}
cout<<"\n"‘;
return 0;
}
我还想知道 这里的for循环嵌套 是如何算的? 是计算完 j=0之后 计算i<3 为非零 ;然后输出\n 之后计算j++ 在进入下一个for循环么? 还是将第一个循环完全做完再进入后一个for循环?
顺便求一下 上投那个指针的定义详细的解释。。 有点看不懂。。
*(*(pa+i)+j) 这一个式子能不能帮我详解下? 展开
using namespace std;
int a[][3] ={1,2,3,4,5,6,7,8,9};
int main()
{
int (*pa) [3] (a);
//这里是定义指向函数组a的指针 是不是 相当于(*pa)[3](a)=&a[ ] [3]? 但是名称不太对啊。。
for(int j=0;i<3;j++)
{
cout<<"\n";
for(int j=0;i<3;j++)
{
cout<<*(*(pa+i)+j)<<" ";
}
}
cout<<"\n"‘;
return 0;
}
我还想知道 这里的for循环嵌套 是如何算的? 是计算完 j=0之后 计算i<3 为非零 ;然后输出\n 之后计算j++ 在进入下一个for循环么? 还是将第一个循环完全做完再进入后一个for循环?
顺便求一下 上投那个指针的定义详细的解释。。 有点看不懂。。
*(*(pa+i)+j) 这一个式子能不能帮我详解下? 展开
2个回答
展开全部
你的代码有很多问题,
#include <iostream>
using namespace std;
int a[][3] ={1,2,3,4,5,6,7,8,9};
int main()
{
int (*pa) [3] =a;
//这里是定义指向函数组a的指针pa,
for(int i=0;i<3;i++)//二维数组的行数i
{
cout<<"\n";
for(int j=0;j<3;j++)//列数j
{
cout<<*(*(pa+i)+j)<<" ";
}
}
cout<<"\n";
return 0;
}
运行结果:
*(*(pa+i)+j)==pa[i][j]因为指针变量pa是指向一个含3个元素的数组a
所以pa[i][j]==a[i][j]
可以多去参考一下指向数组的指针,一两句话是讲不完的。
追问
那这个 这里的for循环嵌套 是如何算的? 是先算里头那个for循环么?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询