大家好,想问个问题
int a=10;
cout << a = 5 << endl;
第二句是不合法的,但是原因是第二句等效于
(cout << a) = (5 << endl) 吗?还是别的什么
<< 和 = 的优先级问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
牛哞哞杂记 2025-01-14 14:57关注第二句不合法的原因是因为 cout << a = 5 << endl 中的 a = 5 是一个赋值表达式,它的结果是 5,而 endl 是一个操纵符。正确的解释是 cout << (a = 5) << endl,这会将 a 赋值为 5,然后将 5 输出到 cout,最后输出 endl。 但是,cout << a = 5 << endl 这种写法是不合法的,因为 endl 不能与 5 进行赋值操作。正确的写法应该是:
int a = 10;
cout << (a = 5) << endl;
这会输出 5 并将 a 的值更新为 5。解决 无用评论 打赏 举报