const char *p的问题。

const char *p=NULL;
if(p==NULL){}
其中if这个判断在vs2010中无法通过编译,提示必须为左值,而在gcc编译器中顺利通过。我想问的是:不是左值就不能逻辑比较了么?什么鬼?

VS2010的问题?,用VS2012可以通过,没问题

强制转换成int型判断是否为0不就行了

强制转换成int型判断是否为0
VS2010的问题

你确定你提供的代码,与报错时的代码一致?
应该不是编辑器的问题,再仔细的看看你的代码吧:是不是写错了!

囧,表示路过学习,居然会这样。

p==“”,目测2010的问题

按你这种写法的话应该是没错的,建议在写这类表达式式的时候写为 NULL==p,即数值放在左边。