后天考c语言,可是复习时候碰到一些困难,请问大家帮忙解答!急5

2025-12-17 15:41:49
推荐回答(4个)
回答1:

main()
{
int a[3][3],*p,i;/* 定义二围数组,三行三列 */
p=&a[0][0]; /* 数组赋给指针P */
for(i=0;i<9;i++)p[i]=i; /* i自加从0到8的数赋给数组 */
for(i=0;i<3;i++)printf("%d",a[1][i]);}/*输出按照1行i列输出*/
a[1][i]从第一行 i列开始,执行到
p[i]={ 1, 2 ,3 ,4, 5 ,6, 7, 8 }
for(i=0;i<3;i++)printf("%d",a[1][i])
上面for的循环 i从0开始第一次输出第1行0列
循环回来后i递增变 1 输出第1行1列
以次类推到i<3为止。

回答2:

考察的是二维数组在内存中存储,先行后列,存完第一行后再存第二行。

回答3:

p=&a[0][0];p取得a[0][0]的地址,也可以说建立数组p[9];p[0]=a[0][0],p[1]=a[0][1],p[2]=a[0][2],p3=a[1][0]......依次类推。
for(i=0;i<9;i++)p[i]=i; 按照行序给数组a赋值;
for(i=0;i<3;i++)printf("%d",a[1][i]); 显示第二行的数据。

回答4:

输出第一行的三个数!