C语言段代码查找错误原因及改正

来源:百度知道 编辑:UC知道 时间:2024/05/12 04:38:37
main(){
int a[3][3]={1,2,3,4,5,6,7,8,9};
int *pa[3]={a[0],a[1],a[2]};
int *p=a[0];
int i;
for(i=0;i<3;i++)
printf("%d,%d,%d\n",a[i][2-i],*a[i],*(*(a+i)+i));
for(i=0;i<3;i++)
printf("%d,%d,%d\n",*pa[i],p[i],*(p+i));
}

int *pa[3]={a[0],a[1],a[2]};
这一行有什么错误
解释一下
联系QQ357078055

呃,指针!
好麻烦。

你的代码编译是通得过的。
输出结果如下:
3,1,1
5,4,5
7,7,9
1,1,1
4,2,2
7,3,3

对于你这一行:
int *pa[3]={a[0],a[1],a[2]};

说的是
指针pa[0]指向{1,2,3,4,5,6,7,8,9}中1值的地址。
指针pa[1]指向{1,2,3,4,5,6,7,8,9}中4值的地址。
指针pa[2]指向{1,2,3,4,5,6,7,8,9}中7值的地址。

在TC中我没试,那玩要安装DOS,呵呵。

在我的编译器上没错误阿
输出结果如下:
3,1,1
5,4,5
7,7,9
1,1,1
4,2,2
7,3,3
不知道你用什么编译器??