可能简单但令人困惑的分配错误

Probably simple but confusing assignment error

#include <stdio.h>

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

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

指向整数转换的指针不兼容

赋值从指针生成整数而不进行强制转换

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

gradesList[2] = 'X';


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

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

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

你应该使用:

gradesList[2] = 'X';