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())
一切正常。
我知道我可以在 -statementp
之前初始化if
,但我对我展示的变体感兴趣。