【发布时间】:2018-08-30 09:09:33
【问题描述】:
char characters[] = {'h','e','l','l','o'};
char* characters[] = {"h","e","l","l","o"};
后者如何能够指向单个字符串?
【问题讨论】:
-
因为
char是一种只能包含一个自身元素的类型。char*是指向某个内存位置的指针,当您创建字符串文字(引号中的字符字符串)时,它实际上是一个数组,因此您可以返回一个指针,以便您可以对其执行指针运算以遍历字符串。 -
您能解释一下为什么这让您感到惊讶吗?这与
char c = 'h';与char* c = "h";的情况完全相同。 (顺便说一下,第二个例子 - 和你的 - 不应该编译。) -
我喜欢这样的问题,即“为什么这两种不同类型的行为不同?”
-
顺便说一句,缺少
const->const char* characters[]。 -
@SkepticalEmpiricist 你说得对,我撤回了重复投票。