指向单引号字符串的字符指针数组打印最后4个字符串的字符串

时间:2014-10-14 17:40:48

标签: c arrays pointers c-strings character-arrays

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

输出: llun

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

2 个答案:

答案 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'};