将char与整数进行比较

时间:2014-09-12 13:10:25

标签: c char comparison

编译以下内容时出现错误

char *token;
...
if(token == 'x')
{
    ...
}

我得到的错误是:指针和整数之间的比较。这是如何工作的,我该如何解决?

2 个答案:

答案 0 :(得分:2)

问题是token不是char,它是指向char的指针。改变这个

if(token == 'x')

if(*token == 'x')

答案 1 :(得分:1)

在C中,整数字符常量的类型为int

(C标准,6.4.4.4字符常数)

  

10整数字符常量的类型为int。

所以在这个表达式中

token == 'x'

指针标记定义为

char *token;

与整数常数'x'进行比较。编译器不知道如何比较它们并发出错误。

我认为你想比较指针令牌指向的对象和

的整数常量
if( *token == 'x')

考虑到该令牌应被分配一个有效的地址。