可能简单但令人困惑的分配错误
#include int main() { char gradesList[5]; gradesList[2] = "X"; printf("%c", gradesList[2]); }
当我尝试运行此代码时,我收到以下错误:
指向整数转换的指针不兼容
赋值从指针生成整数而不进行强制转换
您必须指定char
而不是pointer to a string literal
的pointer to a string literal
。 用'
代替"
gradesList[2] = 'X';
在C字符串中,使用double qoutes表示文字,即"
。”并且使用单引号表示char
,即'
。
因为您已将gradesList
声明为char
数组。 并且正在尝试分配指向字符串文字的指针,您将收到此错误。
双引号内的任何内容都被视为字符串。
你应该使用:
gradesList[2] = 'X';