gpt4 book ai didi

c++ - 为什么这个 "if"语句不起作用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:16:20 25 4
gpt4 key购买 nike

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 with GCC 4.3.4 and VS 2008. 如果只有 if ( int* p = bar( )) 一切正常。

我知道我可以在 if 语句之前初始化 p,但我对我展示的变体很感兴趣。

最佳答案

int* p = bar() && foo( p )

先求逻辑表达式,再赋值

和写一样:

int *p = ( bar() && foo(p) );

关于c++ - 为什么这个 "if"语句不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11520432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com