王之叹息 发表于 2021-5-29 19:52:17

c语言S1E23作业题

本帖最后由 王之叹息 于 2021-5-30 10:11 编辑


看不懂,答案也看不懂,彻底卡住了、想不出来
答案:
#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) != '\0'; j++)
                {
                        printf("%c ", (*p));
                }
                printf("\n");
      }

      return 0;
}

万千只cnm 发表于 2021-5-29 19:52:18

https://www.cnblogs.com/mq0036/p/3382732.html

王之叹息 发表于 2021-5-29 19:54:49

我真的想扁人{:5_90:}

wp231957 发表于 2021-5-29 20:27:59

你发图片是想让人重敲一下你的代码??

王之叹息 发表于 2021-5-29 20:32:22

wp231957 发表于 2021-5-29 20:27
你发图片是想让人重敲一下你的代码??

大佬,我这不是说这个题在哪了吗{:10_266:}
S1E23:指针数组和数组指针 | 课后测试题及答案
https://fishc.com.cn/thread-72908-1-1.html
(出处: 鱼C论坛)

万千只cnm 发表于 2021-5-29 20:34:22

array是个指针数组 存放五个指针   
&array 取数组名的地址,代表整个数组   
=(赋值号)    左右两边类型必须相等
所以左边应该是个指向指针数组的 指针   
-->    char*(*p)【5】
小括号优先所以是个指针   去掉不看剩下 char *【5】-->字符型的指针数组   
所以    char*(*p)【5】= &array;

万千只cnm 发表于 2021-5-29 20:39:56

另外 &a 和a的值是一样的   
但类型和意义不一样   &a --> char* 【5】
a -->char**

王之叹息 发表于 2021-5-29 20:44:28

万千只cnm 发表于 2021-5-29 20:34
array是个指针数组 存放五个指针   
&array 取数组名的地址,代表整个数组   
=(赋值号)    左右两边 ...

char (*p)不是个数组指针吗,那怎么char *(*p)是个指向指针数组的指针

万千只cnm 发表于 2021-5-29 20:45:13

王之叹息 发表于 2021-5-29 20:44
char (*p)不是个数组指针吗,那怎么char *(*p)是个指向指针数组的指针

对啊 指针数组不算数组了嘛{:5_102:}

wp231957 发表于 2021-5-29 20:46:43

王之叹息 发表于 2021-5-29 20:32
大佬,我这不是说这个题在哪了吗
S1E23:指针数组和数组指针 | 课后测试题及答案
https://fi ...

我又不是小甲鱼,我咋知道S1E23是神马鬼

rt3 发表于 2021-5-30 10:09:12

这是个双层循环,内层循环每次迭代输出1个字符,遇到'\0'表示 该字符串结束,1次循环就输出一个字符串,然后 换行,再进行下次內层循环。5次内层循环算1个大循环,总共输出 5个 字符串
页: [1]
查看完整版本: c语言S1E23作业题