下弦月之夜_夜末 发表于 2013-12-10 18:35:30

指针指向数组行问题,请看看。。。

#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

SXDA 发表于 2013-12-10 21:12:29

我觉得应该是这样解释:
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]
查看完整版本: 指针指向数组行问题,请看看。。。