可能简单但令人困惑的赋值错误

Posted

技术标签:

【中文标题】可能简单但令人困惑的赋值错误【英文标题】: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'(单引号)是单个字符。 【参考方案1】:

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

gradesList[2] = 'X';


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

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

【讨论】:

【参考方案2】:

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

你应该使用:

gradesList[2] = 'X';

【讨论】:

以上是关于可能简单但令人困惑的赋值错误的主要内容,如果未能解决你的问题,请参考以下文章

Fortran程序中令人困惑的调试错误

令人困惑的模板错误

c ++真正令人困惑的链接错误

令人困惑的“重复标识符”打字稿错误消息

令人困惑的 NODE_MODULE 错误

尝试上传到 Cloudinary 时收到令人困惑的错误