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

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

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

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

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

您必须指定char而不是pointer to a string literalpointer to a string literal 。 用'代替"

 gradesList[2] = 'X'; 

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

因为您已将gradesList声明为char数组。 并且正在尝试分配指向字符串文字的指针,您将收到此错误。

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

你应该使用:

 gradesList[2] = 'X';