以下是引用菜鸟11号在2006-11-1 21:16:29的发言:
那么为什么这个程序出错
main()
{ int i;
int (*array)[3];
int a[]={1,2,3};
array=a;
for(i=0;i<3;i++)
printf(" %d",*(array+i));
}
应该输出
1 2 3
但是它输出
46 40 34
那么为什么这个程序出错
main()
{ int i;
int (*array)[3];
int a[]={1,2,3};
array=a;
for(i=0;i<3;i++)
printf(" %d",*(array+i));
}
应该输出
1 2 3
但是它输出
46 40 34
上面的程序有两个错误:1。a 应该定义为二维数组 2。*(array+i))代表的是地址,应该是*(*(array+i))
main()
{ int i;
int (*array)[3];
int a[3][3]={1,0,0,2,0,0,3,0,0};
array=a;
for(i=0;i<3;i++)
printf(" %d",*(*(array+i)));
}
新王登基,血流成河!