【问题标题】:"initialization makes integer from pointer without a cast" waning in array initialization“初始化从没有强制转换的指针中生成整数”在数组初始化中减弱
【发布时间】:2015-05-29 16:14:54
【问题描述】:

我现在开始学习 C。我想知道为什么会收到警告。我声明了一个二维char数组,为什么"d"这个字符是不允许的?

char array[3][3] = {{1,"d",3},{3,2,1},{2,1,3}};

【问题讨论】:

  • "d" 应该是 'd' 一个字符而不是字符串。

标签: c arrays pointers char compiler-warnings


【解决方案1】:

将“d”替换为“d”

'd' 是一个字符

“d”是一个字符串

【讨论】:

    【解决方案2】:

    TL;DR -- "d" 不是一个字符,它是一个字符串'd' 是一个字符。


    为了详细说明,我们使用单引号'' 来表示char。它代表char。该值为int 类型。

    OTOH,双引号" " 用于表示字符串。它返回 string 的基地址。那是一个指针。

    在您的代码中,您使用了"d"(它返回一个指向字符串文字的指针)来初始化一个char 变量,该变量需要一个int 类型的值。因此发出警告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多