指针指向数组行问题,请看看。。。
#include "stdio.h"int main(void)
{
int a={{1,2,3},{4,5,6}},i,j;
int (* zhizhen_a);
zhizhen_a=a;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
printf("%d ",(* zhizhen_a+i));
}
请问 为什么输出结果是1 2 3 2 3 4
我觉得应该是这样解释:
1. int (* zhizhen_a);定义了一个有三个元素的一位数组指针,
2. zhizhen_a=a; 把a给了zhizhen_a,这时
zhizhen_a == a==1,
zhizhen_a == a==2,
zhizhen_a == a==3,
3.for循环第一次打印了zhizhen_a就是1,2,3,第二次循环打印了zhizhen_a,这里的zhizhen_a越界了,所以是2,3,4
页:
[1]