char p[3][6]={{'a','b','c','\0'},{'d','e','f','\0'},{'g','h','i','\0'}};
char s[3][6]={"abc","def","ghi"};
他们俩都一样吗?如果不同,请说明它在内存中的存储方式和方式?
答案 0 :(得分:3)
他们在记忆中是一样的。在VS 2010调试器中,我转换为char *,因此我可以检查p和s的前18个原始字节:
答案 1 :(得分:2)
在两种方法中都有无差异,请尝试以下代码并查看结果
变量p和s的结果相同。
#include<stdio.h>
void main()
{
int i,j=0;
char p[3][6]={{'a','b','c','\0'},{'d','e','f','\0'},{'g','h','i','\0'}};
char s[3][6]={"abc","def","ghi"};
for(i=0;i<3;i++)
{
printf("%s",p[i]);
printf("\n");
}
for(i=0;i<3;i++)
{
printf("%s",s[i]);
printf("\n");
}
}
结果如下:
First 2-d string is : abc def ghi
Second 2-d string is :abc def ghi