- 此问题在此处已有答案**:
Initialize array of strings(3个答案)
2天前关闭。
这是关于单字符指针和双字符指针的。这里我尝试用一个字符串数组初始化一个双指针,同时定义新指针。
我试过了
char arry[] = "Hello World"
char* cptr = "Hello World"
它工作正常,不同的是第二行只是只读的。同样,我尝试使用双指针
char *darry[] = {"Hello", "World", "C", "Ubuntu"};
char **da = {"Hello", "World", "C", "Ubuntu"};
我原以为双指针(da)会和单指针一样工作,但是它给了我一个错误。有人能给我指出正确的方向吗?谢谢
1条答案
按热度按时间guykilcj1#
char *darry[]
是一个数组。{"Hello", "World", "C", "Ubuntu"}
是char *
的 * 数组 * 的有效初始值设定项。char **da
是指针。char **da = {"Hello", "World", "C", "Ubuntu"};
失败,因为{"Hello", "World", "C", "Ubuntu"}
不是指针的有效初始值设定项。要初始化指向数组第一个元素的非
char *
指针,请使用 compound literal 构成char *
数组。然后,作为初始化的一部分,array 将转换为其第一个元素的地址,即char **
。