可能简单但令人困惑的赋值错误
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';
【讨论】:
以上是关于可能简单但令人困惑的赋值错误的主要内容,如果未能解决你的问题,请参考以下文章