在初始化指针数组时,为什么只有字符串不显示警告?

乐高

我没有制作特定的程序。我对C语言中的某种语法事物感到好奇。
我做了这些声明。

int main()
{
    char *titles[] = {"NUDGE", "DECOUPLEING", "WORLD WAR Z"};
    char *letters[] = {{'a', 'b', 'c'}, {'x', 'y', 'z'}};
}

在第二个声明中,有3种警告。

  1. 标量初始值设定项周围的花括号
  2. 初始化使指针从整数开始而无需强制转换
  3. 标量初始化程序中的多余元素

我知道*numbers[]这种事情应该在其中包含指针值。
因为字符串类型是指针,所以第一个声明不显示警告吗?
字符不是字符串吗?

+)“标量初始化器”在第一个和第三个警告中意味着什么?

+)

char titles[][] = {"NUDGE", "DECOUPLEING", "WORLD WAR Z"};

这显示什么错误,而第一个不显示错误?


我是C指针的初学者。请解释 :)

P__J支持波兰的妇女

第二次初始化无效,因为{'a', 'b', 'c'}不能初始化为指针的数组

您应该改用复合文字:

char *letters[] = {(char[]){'a', 'b', 'c'}, (char []){'x', 'y', 'z'}};

它定义了两个(2)指向三个字符数组的指针的数组。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当将值分配给结构初始化程序中的字符串数组成员时,为什么会收到“ int-conversion”警告?

来自分类Dev

初始化const指针为null时为什么没有警告或错误?

来自分类Dev

初始化指针时的字符串文字与char数组

来自分类Dev

为什么Visual Studio不警告静态字符串的循环初始化?

来自分类Dev

C ++为什么可以初始化一个空字符串数组?

来自分类Dev

初始化向量字符串数组时出错

来自分类Dev

字符串数组初始化

来自分类Dev

在初始化期间为指针分配字符串值时,会发生什么情况?

来自分类Dev

为什么“字符数组的初始化程序字符串太长”在C中编译良好,而在C ++中却没有?

来自分类Dev

为什么不显示字符串?

来自分类Dev

为什么输出不显示初始化值-1?

来自分类Dev

如何从char指针值数组(char * ptr [])初始化字符串

来自分类Dev

在为什么初始化字符串if语句似乎比在switch语句中有什么不同?

来自分类Dev

为什么不能从字符串中复制初始化字符串流?

来自分类Dev

警告:数组“字母”由带括号的字符串文字初始化

来自分类Dev

为什么未初始化的指针变量作为字符串会导致错误?

来自分类Dev

使用指针初始化字符串

来自分类Dev

当我使用变量而不是整数或字符串时,为什么初始化日期对象失败?

来自分类Dev

为什么初始化指针时必须将数组强制转换为type []?

来自分类Dev

C字符串指针初始化自己然后取消初始化自己?

来自分类Dev

字符数组的初始化字符串太长错误

来自分类Dev

字符数组的初始化字符串太长C

来自分类Dev

用字符串变量初始化字符数组

来自分类Dev

为什么要使用int初始化字符串?

来自分类Dev

为什么必须在连接之前初始化javascript字符串变量

来自分类Dev

在C ++中使用之前,为什么以及何时必须初始化字符串?

来自分类Dev

为什么在反转字符串时这些字符不显示?

来自分类Dev

无法从成员变量的初始化字符串推断数组大小的原因是什么?

来自分类Dev

Jasmin字符串声明/初始化错误数组

Related 相关文章

  1. 1

    当将值分配给结构初始化程序中的字符串数组成员时,为什么会收到“ int-conversion”警告?

  2. 2

    初始化const指针为null时为什么没有警告或错误?

  3. 3

    初始化指针时的字符串文字与char数组

  4. 4

    为什么Visual Studio不警告静态字符串的循环初始化?

  5. 5

    C ++为什么可以初始化一个空字符串数组?

  6. 6

    初始化向量字符串数组时出错

  7. 7

    字符串数组初始化

  8. 8

    在初始化期间为指针分配字符串值时,会发生什么情况?

  9. 9

    为什么“字符数组的初始化程序字符串太长”在C中编译良好,而在C ++中却没有?

  10. 10

    为什么不显示字符串?

  11. 11

    为什么输出不显示初始化值-1?

  12. 12

    如何从char指针值数组(char * ptr [])初始化字符串

  13. 13

    在为什么初始化字符串if语句似乎比在switch语句中有什么不同?

  14. 14

    为什么不能从字符串中复制初始化字符串流?

  15. 15

    警告:数组“字母”由带括号的字符串文字初始化

  16. 16

    为什么未初始化的指针变量作为字符串会导致错误?

  17. 17

    使用指针初始化字符串

  18. 18

    当我使用变量而不是整数或字符串时,为什么初始化日期对象失败?

  19. 19

    为什么初始化指针时必须将数组强制转换为type []?

  20. 20

    C字符串指针初始化自己然后取消初始化自己?

  21. 21

    字符数组的初始化字符串太长错误

  22. 22

    字符数组的初始化字符串太长C

  23. 23

    用字符串变量初始化字符数组

  24. 24

    为什么要使用int初始化字符串?

  25. 25

    为什么必须在连接之前初始化javascript字符串变量

  26. 26

    在C ++中使用之前,为什么以及何时必须初始化字符串?

  27. 27

    为什么在反转字符串时这些字符不显示?

  28. 28

    无法从成员变量的初始化字符串推断数组大小的原因是什么?

  29. 29

    Jasmin字符串声明/初始化错误数组

热门标签

归档