【问题标题】:Probably simple but confusing assignment error可能简单但令人困惑的赋值错误
【发布时间】:2016-02-09 18:05:15
【问题描述】:
#include <stdio.h>

int main() {
    char gradesList[5];
    gradesList[2] = "X";
    printf("%c", gradesList[2]);
}

当我尝试运行此代码时,出现以下错误:

整数转换指针不兼容

赋值使指针变成整数而不需要强制转换

【问题讨论】:

  • "X"(双引号)是一个指向字符串的指针。 'X'(单引号)是单个字符。

标签: c arrays pointers assignment-operator


【解决方案1】:

您必须分配char 而不是pointer to a string literal。使用' 而不是"

gradesList[2] = 'X';


在 C 中,字符串文字使用双引号表示,即"。而char 使用单引号表示,即'

由于您已将 gradesList 声明为 char 数组。并尝试将指针分配给字符串文字,您会收到此错误。

【讨论】:

    【解决方案2】:

    双引号内的任何内容都被视为字符串。

    你应该使用:

    gradesList[2] = 'X';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-08
      • 2018-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-16
      • 2012-09-12
      相关资源
      最近更新 更多