-5
#include<stdio.h>
int main()
{
      char *value[] = {'Godnull'};
      printf("%s\n",value);
      return 0;
}

输出:llun

有人可以解释一下这个输出。

4

2 回答 2

1

在 C 中用单引号写一个字符串绝对没问题。这些被称为"MultiCharacter Constant"类型为"int"。并且取决于编译器 int 将具有 4 字节的大小,可以将 4(1 字节字符)存储到您的数组中。这可能就是您在控制台上只打印四个字符的原因。请参考这个字符常量中的多个字符

无论如何,不​​建议像上面那样声明字符指针数组。

谢谢,

于 2014-10-16T11:26:51.933 回答
0

您在这里遇到了一些问题:

 char *value[] = {'Godnull'};

当我假设您正在尝试创建单个字符串时,您正在创建一个字符串数组

此外,要初始化一个字符串,您需要双引号中的字符串:

  char *value = "Godnull";

编辑: 如果您真的想将其声明为字符数组并将其用作字符串,请尝试:

 char value[] = {'G', 'o', 'd', 'n', 'u', 'l', 'l', '\0'};
于 2014-10-14T17:52:24.227 回答