C语言中存储多个字符串的两种方式
方式一 二维字符串数组
声明:
char name[4][10] = { “Justinian”, “Momo”, “Becky”, “Bush” };
在内存中的存储:
这种方式会造成内存空间的浪费
方式二 一维指针数组
声明:
char *name[4] = { “Justinian”, “Momo”, “Becky”, “Bush” };
在内存中的存储:
可见此种方式能够避免不必要的内存浪费
验证结果:
#include <stdio.h>
int main()
{
char name1[4][10] = { "Justinian", "Momo", "Becky", "Bush" };
char *name2[4] = { "Justinian", "Momo", "Becky", "Bush" };
printf("--------二维字符串数组的存储方式-------\n");
for(int i = 0; i < 4; i++)
{
printf("name[%d] = \"%s\"\t", i, name1[i]);
printf("所占地址:%p\n", name1[i]);
}
printf("--------一维指针数组的存储方式--------\n");
for(int i = 0; i < 4; i++)
{
printf("name[%d] = \"%s\"\t", i, name2[i]);
printf("所占地址:%p\n", name2[i]);
}
}