李现实 发表于 2021-6-14 03:02:58

e23的一点小问题

本帖最后由 李现实 于 2021-6-14 03:09 编辑

我想请问为啥要运用*(*(*p+i)+j),而*((*p+i)+j)却不行,我想知道的是为啥要多用一个 * 。求解惑。

CClook 发表于 2021-6-14 03:02:59

我是这个样子理解的
*p+1 确定字符串的位置
*(*p + i) + j确定字符串中单个字符的位置
*(*(*p + i) + j)取指

李现实 发表于 2021-6-14 03:08:03

#include <stdio.h>

int main()
{
      char *array = {"FishC", "Five", "Star", "Good", "WoW"};
      char *(*p) = &array;
      int i, j;

      for (i = 0; i < 5; i++)
      {
                for (j = 0; *(*(*p + i) + j) != '\0'; j++)
                {
                        printf("%c ", *(*(*p + i) + j));
                }
                printf("\n");
      }

      return 0;
}

万千只cnm 发表于 2021-6-14 12:19:39

*(*(*p+i)+j)==
p
*((*p+i)+j) ==
p这i和j相当于是一起的
页: [1]
查看完整版本: e23的一点小问题