冰林炎 发表于 2017-11-7 12:35:33

求助

# include <stdio.h>
int main(void)
{
      int a[]={2,4,6,8}, *p=a,i;
      for (i=0; i<4; i++)
            a=*p++;
      printf("%d\n", a);

      return 0;
}
这段程序的输出结果为什么是6,不应该是8么

冰林炎 发表于 2017-11-7 12:49:58

知道了,*p++是先取*p的值,赋值给a后才移动指针

BngThea 发表于 2017-11-7 13:09:43

for循环相当于什么都没做,只是把p指向了a+3

闪电猫网络 发表于 2017-11-7 19:52:54

for (i=0; i<4; i++)
            a=*p++;

这句话去掉对结果也没影响啊,
页: [1]
查看完整版本: 求助