这个char数组如何存储四个单独的字符串?

Mac*_*y18 0 c string pointers char

我正在读这本书中的这个片段让我感到困惑.文本字符串放入char数组中.有四个单词,数组中有四个元素.等等,但这意味着单个char元素包含整个文本字符串.我肯定chars只能处理一个角色.这是代码.

const char *words[4] = { "aardvark", "abacus", 
    "allude", "zygote" };
Run Code Online (Sandbox Code Playgroud)

什么给出了什么?作者如何chars用来存储整个字符串?我知道解决方案必须非常明显,但我无法看到它.另外,const关键字是什么?为什么只有在我们计划对这个数组做的所有事情都计算每个单词的长度时才需要读取strlen()

pb2*_*b2q 7

代码不使用字符来存储字符串,请注意声明是一个数组 char *.

A char可以包含单个字符,并且a char *可以用于指向字符数组的第一个元素,该元素可以包含标准C字符串.这是一个重要的C基础:看到a char *,你应该立即想到以null结尾的C字符串.

类似地,通过保持int *数组中第一个int的地址,可以使用a来指代整个数组.可以像使用声明的数组一样下标. intint*[]

A char *也可以用来简单地保存单个字符的地址 - 即不是空终止字符串中的第一个字符.