bool foo(int* p)
{
return false;
}
int* bar ()
{
int* p;
return p;
}
int main() {
if (int* p = bar() && foo(p))
//if (((int* p = bar()) != NULL) && (foo(p))) // another variant
{
}
return 0;
}
我得到error: cannot convert ‘bool’ to ‘int*’ in initialization
与GCC 4.3.4和VS 2008.如果只有if (int* p = bar())
一切工作正常。为什么这个“如果” - 陈述工作?
我知道我可以在if
之前初始化p
-statement,但我对显示的变体感兴趣。
谢谢你的回答。 – fogbit 2012-07-17 10:53:22