#include<stdio.h>
int main()
{
char *value[] = {'Godnull'};
printf("%s\n",value);
return 0;
}
输出: llun
有人可以解释一下这个输出。
答案 0 :(得分:1)
在单引号中写一个字符串在C中绝对没问题。这些被称为&#34; MultiCharacter 常量&#34; ,类型为 &#34; int&#34; 。并且取决于编译器int将具有的大小 4个字节,可以将4个(1个字节字符)存储到您的数组中。也许可能是 你在控制台上只打印四个字符的原因。请参阅此Multiple characters in a character constant
无论如何,不建议如上所述声明字符指针数组。
谢谢,
答案 1 :(得分:0)
你在这里遇到了一些问题:
char *value[] = {'Godnull'};
当我假设您正在尝试创建单个字符串时,您正在创建一个字符串数组
此外,要初始化字符串,您需要双引号中的字符串:
char *value = "Godnull";
修改强> 如果你真的想将它声明为字符数组并将其用作字符串,请尝试:
char value[] = {'G', 'o', 'd', 'n', 'u', 'l', 'l', '\0'};