土沙拉 发表于 2017-12-21 13:48:10

关于S1E23课后练习动动手第1题

个人理解写在注释上了,不知道理解对不对,望各位大神指点
#include <stdio.h>

int main()
{
      char *array={"FishC","Five","Star","Good","WoW"};//指针数组array
      char *(*x)=&array;//指向指针数组array的指针
      int i,j;
      for(i=0;i<5;i++)
      {
                for(j=0;*(*(*x+i)+j) !='\0';j++)//当i=0时,(*(*x+0))//表示指向array,*(*(*x+0)+j)表示从array开始向后移动j位,以此类推i=1,2,3,4.
                {
                        printf("%c ",*(*(*x+i)+j));
                }
                printf("\n");
      }


      return 0;
}

BngThea 发表于 2017-12-21 13:57:55

理解正确

土沙拉 发表于 2017-12-21 15:45:56

BngThea 发表于 2017-12-21 13:57
理解正确

再问下 **(p+1) 和*(*(p+1)+0)是等价的对吗?谢谢

BngThea 发表于 2017-12-21 15:50:25

土沙拉 发表于 2017-12-21 15:45
再问下 **(p+1) 和*(*(p+1)+0)是等价的对吗?谢谢

是等价的
但是我们一般不采用这种方式,用下标取值可读性更高

土沙拉 发表于 2017-12-21 15:54:21

BngThea 发表于 2017-12-21 15:50
是等价的
但是我们一般不采用这种方式,用下标取值可读性更高

明白了,谢谢
页: [1]
查看完整版本: 关于S1E23课后练习动动手第1题