我有字符数组的数组:为什么* words []不等于**单词?
char *words[] = {"word1", "word2", "word3"};
我了解到,你可以写*字访问的第一个值。所以如果我使用*字,我会得到“字1”,因为这是什么字指向。
为什么这不适用于此阵列?
char **words = {"word1", "word2", "word3"};
看来这应该也是这样。
我有字符数组的数组:为什么* words []不等于**单词?
char *words[] = {"word1", "word2", "word3"};
我了解到,你可以写*字访问的第一个值。所以如果我使用*字,我会得到“字1”,因为这是什么字指向。
为什么这不适用于此阵列?
char **words = {"word1", "word2", "word3"};
看来这应该也是这样。
阵列可以使用语法进行初始化:
int array[] = {1, 2, 3};
然而,指针不能使用语法初始化:
int* array = {1, 2, 3};
这就是语言是如何定义的。
同样的比喻适用于words
在发布代码:
char *words[] = {"word1", "word2", "word3"};
初始化的char*
阵列。
char **words = {"word1", "word2", "word3"};
不是由语言支持的语法的指针初始化为char*
。
堆栈分配vs堆 –
指针数组和指针指针数不相同 –
@self:你是什么意思?没有上下文,你的评论是错误的。 – Olaf