你能帮我分解一下这段代码实际上在做什么吗?if((a = b> c?d:e)== e)a ++;

use*_*764 -5 c c++ syntax ternary-operator

int a = 2, b = 3, c = 5, d = 4, e = 1;

if ((a = b > c ? d : e) == e) a++;
Run Code Online (Sandbox Code Playgroud)

答案是a = 2

我不明白这是在做什么.

你能帮我弄清楚这段代码是一步一步做的吗?

Lih*_*ihO 6

if ((a = b > c ? d : e) == e) a++;
Run Code Online (Sandbox Code Playgroud)

等于:

if (b > c)
    a = d;
else
    a = e;
if (a == e)
    a++;
Run Code Online (Sandbox Code Playgroud)

另外看看:什么'?' 用C++做什么?