小明同学吖 发表于 2022-5-27 00:06:11

下面这段代码我没懂求解答!

       #include<stdio.h>
                               int main()
                               {
                                       inta={0,1,2,3,4,5,6,7,8,9,10,11};
                                       int (*p);                                                //这儿
                                       int i,j;
                                       p=a;
                                       for(i=0;i<3;i++)
                                       {
                                               for(j=0;j<4;j++)
                                               {
                                                       printf("%2d ",*(*(p+i)+j));                //这儿
                                               }
                                               printf("\n");
                                       }
                               }

jhq999 发表于 2022-5-27 05:54:00

本帖最后由 jhq999 于 2022-5-27 06:16 编辑


                                 #include<stdio.h>
                                 int main()
                                 {
                                       inta={0,1,2,3,4,5,6,7,8,9,10,11};
                                       int (*p);                                                //声明一个一维大小是4的二维数组指针
                                       int i,j;
                                       p=a;
                                       for(i=0;i<3;i++)
                                       {
                                                 for(j=0;j<4;j++)
                                                 {
                                                         printf("%2d ",*(*(p+i)+j));                //p+i=&p;*(p+i)=p;*(p+i)+j=&p;*(*(p+i)+j))=p;
                                                 }
                                                 printf("\n");
                                       }
                                 }

jackz007 发表于 2022-5-27 09:51:22

本帖最后由 jackz007 于 2022-5-27 09:52 编辑

      int (* p) ; // 定义一个指向末维为 4 的二维整型数组指针 p,这样,p ++ 带来的指针跨度是 4 个 int,就是指向数组的下一行。
      * (* (p + i) + j)) ; // p 指向了 a,那么,p 就是 a,只不过 a 是常量,而 p 是变量,这个表达式实际上就是 p,也就是 a,关于这个,可以结合前面说的 p ++ 的跨度是 4 个 int 来进行理解。
页: [1]
查看完整版本: 下面这段代码我没懂求解答!