比较C中的字符读取指针和整数

12n*_*2nm 1 c comparison

我试图比较一个if语句中的字符,然后在字母表中打印其位置的值.

我的代码是:

char a = 'a';
int value = 0;
if(a == "A" || a == "a"){
    value = 1;
}else if...
Run Code Online (Sandbox Code Playgroud)

编译时我得到错误: warning: comparison between pointer and integer

if(a == "A" || a == "a"){
     ^
Run Code Online (Sandbox Code Playgroud)

我得到的字符在C中存储为ASCII值,这意味着我可能会使用字符的整数值而这将起作用,但我想知道为什么不这样做?

P.P*_*.P. 7

使用单引号:

if(a == 'A' || a == 'a' ){
Run Code Online (Sandbox Code Playgroud)

双引号用于字符串文字.比较时a == "A",将chracter a与指针进行比较(即表达式中使用的字符串文字产生指向其第一个元素的指针).因此,编译器发出诊断.它也一样"a".