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

时间:2015-11-09 05:59:57

标签: c arrays pointers assignment-operator

#include <stdio.h>

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

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

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

赋值使用指针生成整数而不使用强制转换

2 个答案:

答案 0 :(得分:1)

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

gradesList[2] = 'X';

<小时/> 在C字符串中,使用double qoutes表示文字,即"char使用单引号表示,即'

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

答案 1 :(得分:1)

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

你应该使用:

gradesList[2] = 'X';