main() { int a[3][3],*p,i; p=&a[0][0]; for(i=0;i<9;i++) p[i]=i; for(i=0;i<3;i++) printf("%d ",a[1][i 5
main(){inta[3][3],*p,i;p=&a[0][0];for(i=0;i<9;i++)p[i]=i;for(i=0;i<3;i++)printf("%d",...
main()
{
int a[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)
p[i]=i;
for(i=0;i<3;i++)
printf("%d ",a[1][i]);
}帮忙详细解释一下这个程序吧!非常感谢! 展开
{
int a[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)
p[i]=i;
for(i=0;i<3;i++)
printf("%d ",a[1][i]);
}帮忙详细解释一下这个程序吧!非常感谢! 展开
3个回答
展开全部
p指向 a[0][0], 所以 *p和a[0][0]一样, 也与 p[0]一样.
但C/C++是 row-major 的排法,
a[0][0], a[0][1], a[0][2] 之後紧接者 a[1][0], a[1][1], ...., 最後是 a[2][2].
所以
p[1]和a[0][1]一样, p[2]和a[0][2]一样, p[3]和a[1][0]一样
....
p[8]和a[2][2]一样.
for(i=0;i<9;i++)将这九个数依序设为0,1,2,3,...,8
for(i=0;i<3;i++)印出中间的三个值3,4,5
但C/C++是 row-major 的排法,
a[0][0], a[0][1], a[0][2] 之後紧接者 a[1][0], a[1][1], ...., 最後是 a[2][2].
所以
p[1]和a[0][1]一样, p[2]和a[0][2]一样, p[3]和a[1][0]一样
....
p[8]和a[2][2]一样.
for(i=0;i<9;i++)将这九个数依序设为0,1,2,3,...,8
for(i=0;i<3;i++)印出中间的三个值3,4,5
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
输出的结果应该是:3 4 5
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询