这个程序怎么执行的?
#include<stdio.h>
int arry[5][5]={
{2,4,6,8,10},
{10,12,14,16,18},
{18,20,22,24,26},
{26,28,30,32,34},
{34,36,38,40,42},
};
void main()
{
int i,(*Point)[5];
for(i=0;i<4;i++)
{
Point=arry+i;
printf("%d\t",*(Point[i]+2));
}
printf("\n");
}
请问这个程序的结果为什么是:6 22 38 4334040?
[解决办法]
void main()
{
int i,(*Point)[5];
for(i=0;i<4;i++)
{
Point=arry+i; //等同于 Point=&arry[i];
printf("%d\t",*(Point[i]+2)); //等同于 *(arry[i+i]+2) arry[2*i][2];
}
printf("\n");
}
所以 结果是
arry[0][2] == 6
arry[2][2] == 22
arry[4][2] == 38
arry[6][2] ==???//未定义行为..出现值不可知不可预料