【发布时间】:2021-08-16 11:36:05
【问题描述】:
为什么我得到 1 作为输出而不是 7 (如果 a 最初分配了 12 ,那么 a-5 应该给出 7 )或 3 (如果 a 分配有 8 那么 a-5 应该给出 3 )。无论分配给 a 的值如何,输出始终保持为 1。
int main()
{
int a = 12;
if (a = 8 && (a = a - 5))
cout << a;
else
{
//do nothing !!
}
}
【问题讨论】:
-
=是赋值,你想让==检查是否相等 -
你的意思是a==8吗?
-
&&的优先级高于分配,请参阅en.cppreference.com/w/cpp/language/operator_precedence
标签: c++ if-statement operator-precedence assignment-operator logical-and