C++ 将范围分配给C+中的变量+;
看看这个代码,有人能解释一下为什么C++ 将范围分配给C+中的变量+;,c++,gcc,C++,Gcc,看看这个代码,有人能解释一下为什么a+1分配给b #include <iostream> int main(int argc, char *argv[]) { int a = 5; int b = ({ std::cout << "inside scope" << std::endl; a+1; }); std::cout << "b value: " << b; } #包括 int ma
a+1代码>分配给b
#include <iostream>
int main(int argc, char *argv[])
{
int a = 5;
int b = ({
std::cout << "inside scope" << std::endl;
a+1;
});
std::cout << "b value: " << b;
}
#包括
int main(int argc,char*argv[])
{
INTA=5;
int b=({
std::cout范围的值是范围内的最后一条语句,因此在本例中
b=a+1=5+1=6
我不建议像这样编写代码,它不是很清楚
它是一个名为语句表达式的GCC扩展,因此不使用它的另一个很好的理由是因为它不可移植。GCC返回一个警告:
<代码>警告:ISO C++禁止表达式中的括号组[ Wpedantic ] /代码>
< P>结构< /P>
int b = ({
std::cout << "inside scope" << std::endl;
a+1;
});
intb=({
std::难道这是一个。嗯,至少有一个。谢谢你完整的回答
int b = (
std::cout << "not inside scope" << std::endl,
a+1
);
int b = [&](){
double bah = 3.14;
std::cout << "inside scope" << std::endl;
return a+!!bah;
}();