指针赋值给c中的const char * []

时间:2016-03-09 08:35:13

标签: c arrays pointers char const

我想指定一个指向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的内容。

1 个答案:

答案 0 :(得分:2)

使用此功能时,您会收到警告&#34;从不兼容的指针类型初始化[默认情况下启用]&#34;以及因为keyContainerchar *[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;
}

希望这有帮助!