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