dongmei 发表于 2022-3-11 20:28:22

这个打印输出为什么是876呀

#include <stdio.h>

int main() {
        int i,j,a,*p;
        for(i=0;i<3;i++)
        for(j=0;j<3;j++)a=1+j+i*3;
        p=&a;
        while(j)
        {
          printf("%d",p);
          j--;
        }
        return 0;
}
这个打印输出为什么是876呀

jackz007 发表于 2022-3-11 21:10:00

本帖最后由 jackz007 于 2022-3-11 21:12 编辑

#include <stdio.h>

int main() {
      int i,j,a,*p;
      for(i=0;i<3;i++)
      for(j=0;j<3;j++)a=1+j+i*3;
      p=&a;                        // p 指向 a
      while(j)                           // j 的初始值为 3
      {
            printf("%d",p);             // 打印p,p,p 的值
            j--;
      }
      return 0;
}
二维数组 a 的内容是
1 , 2 , 3
4 , 5 , 6
7 , 8 , 9
如果把这个二维数组串起来看就是一维数组
1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9
p 指向 a,a 的值是 5,也就是 p = 5,那么,p、p、p 的值自然就是 8、7、6 了。

dongmei 发表于 2022-3-11 21:12:33

jackz007 发表于 2022-3-11 21:10
二维数组 a 的内容是

如果把这个二维数组串起来看就是一维数组


谢谢
页: [1]
查看完整版本: 这个打印输出为什么是876呀