【发布时间】:2021-11-05 06:09:49
【问题描述】:
为什么会这样:
char *name = "steven";
但这不是:
char **names = {"steven", "randy", "ben"};
或者,为什么会这样:
char *names[] = {"steven", "randy", "ben"};
但是,这又不是:
char **names = {"steven", "randy", "ben"};
【问题讨论】:
-
TLDR:因为
char **names不引用二维数组,不管你被告知什么。见Correctly allocating multi-dimensional arrays -
谢谢,是的,这两个链接都很有帮助。所以当你有 char
-
那么当你有 char *names[] = {"bob", ...} 时,names 是一个指针吗?
-
不,
[]表示names是一个数组,char *表示该数组包含指向char的指针