2 zhouhaiyangqq zhouhaiyangqq 于 2015.07.08 11:45 提问

const char *p的问题。 20C

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

7个回答

oyljerry
oyljerry   Ds   Rxr 2015.07.08 11:57

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

zuishikonghuan
zuishikonghuan   2015.07.08 12:29

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

frank_20080215
frank_20080215   2015.07.08 12:40

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

91program
91program   Ds   Rxr 2015.07.08 12:42

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

suiyunonghen
suiyunonghen   2015.07.08 13:40

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

u012401478
u012401478   2015.07.08 14:02

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

olewa_HHH
olewa_HHH   2015.07.08 18:34

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

Csdn user default icon
上传中...
上传图片
插入图片