暴击光头男 发表于 2021-9-28 21:20:34

S1E24 第五题,哪位能给讲解一下

如果不上机,你能看出下边代码将打印什么值吗?
#include <stdio.h>

int main()
{
      int array = {1, 2, 3, 4, 5, 6, 7, 8, 9};
      int (*p) = (int (*))&array;

      printf("%d\n", p);

      return 0;
}


static/image/hrline/line4.png

int (*p) = (int (*))&array;                哪位帮忙分析一下这句

jackz007 发表于 2021-9-28 21:52:45

本帖最后由 jackz007 于 2021-9-28 21:55 编辑

      毫无疑问,当然是 9 喽。
int (*p) = (int (*))&array;
      这一句把 p 定义成一个末维为 3 的二维数组指针,而 p 指向了一维数组 array,那么,一维数组被 p 规划为 3 x 3 的二维数组,那么,p = {1 , 2 , 3} , p = {4 , 5 , 6} , p = {7 , 8 , 9},p 当然就是 9 了。
页: [1]
查看完整版本: S1E24 第五题,哪位能给讲解一下