C++,这句话是什么意思
C++, What does this statement mean?
我看到了以下语句:(20, 30, 50)
当我cout << (20, 30, 50);
时,它会打印50
。
当我重写它(a, b, c)
-a
,b
,c
可以是char*
或int
-它总是打印c
。有人替我解释吗?请
臭名昭著的逗号运算符再次出现。逗号运算符计算参数,并在执行最后一个参数后返回值。
因此,在您的情况下,(20,30,50)被程序解释为一个正在调用的评估20的语句,然后是一个评估30的语句,最后是一个估计50的语句。但是,只看到最后一条语句的值,因此输出为50。
以下是与逗号运算符相关的关于堆栈溢出的更多问题,这将帮助您更好地理解其影响:
逗号运算符的作用是什么?
Comma操作员如何操作
C逗号运算符的使用
这是逗号运算符。默认情况下,它计算第一个参数并返回第二个参数。
在您的情况下,表达式(20, 30, 50)
将计算20
和30
,然后返回50
。
像大多数C++运算符一样,这可能是重载的,但您看到它的频率远低于其他运算符。
在此语句中
cout << (20, 30, 50);
表达式(20, 30, 50)
是带有逗号运算符的表达式。除最后一个操作数外的所有操作数都是丢弃的值表达式,即不使用它们的结果,并且表达式的值是最后一个运算数的值。对于这个表达式,它是50。
再举一个使用这个算子的例子,它会更清楚
int x = 10;
cout << ( ++x, ++x, ++x );
输出将为13。
int x = 10;
cout << ( x++, x++, x++ );
输出将为12。
如果要输出所有值,20、30、50,则可以使用初始值设定项列表。例如
for ( int x : { 20, 30, 50 } ) std::cout << x << std::endl;
输出将是
20
30
50
相关文章:
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 线应该是什么意思
- "CID"在AT+HTTPPARA= "CID" ,1中是什么意思
- 表达式"b=(b-x)&x"是什么意思?
- 这个表达是什么意思?
- 此代码验证公式是什么意思?
- 跟踪日志中的T.11803()是什么意思?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- * 和 ** 在 C++ 函数声明中是什么意思?
- _T("xyz")是什么意思?
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效
- 这行代码到底是什么意思?
- 当我们说在执行程序时将操作系统的控制权传递给main()函数时,我们的意思是什么
- 这句话在c++中的意思是什么
- 这个typedef的意思是什么
- 这句话的意思是什么
- 意思是什么
- 这个句法的意思是什么?