编译以下内容时出现错误
char *token;
...
if(token == 'x')
{
...
}
我得到的错误是:指针和整数之间的比较。这是如何工作的,我该如何解决?
答案 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')
考虑到该令牌应被分配一个有效的地址。