我想指定一个指向const char *数组的指针,如下所示:
#include <stdio.h>
const char *keyContainer[2]= {"test", "test2" };
const char *keyPtr = &keyContainer;
int main(void)
{
printf("%s\n", keyPtr[0]); //test
printf("%s\n", keyPtr[1]); //test2
return 0;
}
keyPtr包含keyContainer的地址但我无法访问keyContainer的内容。
答案 0 :(得分:2)
使用此功能时,您会收到警告&#34;从不兼容的指针类型初始化[默认情况下启用]&#34;以及因为keyContainer
为char *[2]
,我们会说与char **
相似(不一样!)。所以你需要使用const char **keyPtr = keyContainer;
。
例如:
#include <stdio.h>
const char *keyContainer[2]= {"test", "test2" };
const char **keyPtr = keyContainer;
int main(void)
{
printf("%s\n", keyPtr[0]);
printf("%s\n", keyPtr[1]);
return 0;
}
希望这有帮助!