【发布时间】:2014-10-01 14:19:43
【问题描述】:
char *c[] = { "str1", "str2", "str3", "str4" };
char **c = { "str1", "str2", "str3", "str4" };
第一行有效。第二个不是。为什么?
【问题讨论】:
-
它们是两个不同的东西,一个 char* 指针数组和一个指向 char* 指针的 char* 指针——不是一回事
-
将字符串文字分配给
char *时,请帮自己一个忙,并指定存储类:const char *...const位是此处的关键 -
请注意,将一个普通的非常量指针指向字符串文字是没有任何意义的——它应该是一个指向 const 的指针。
标签: c string pointers char initialization