根据C语言的运算符优先级,先计算乘法和除法,后计算加法和减法。因此,表达式56的值为6,因为先进行了56/8=7的计算,然后进行了7*2=14的计算,最后进行了14-8=6的计算。

在这个表达式中,除法运算符“/”的优先级高于乘法运算符“*”,而乘法运算符“*”的优先级高于减法运算符“-”。
因此,首先计算56/8=7,接着计算7*2=14,最后进行14-8=6的计算。因此,表达式56的值为6。
条件运算符(?:)是c语言中唯一的一个三目运算符,它是对第一个表达式作真/假检测,然后根据结果返回另外两个表达式中的一个。 <表达式1>?<表达式2>:<表达式3> 在运算中,首先对第一个表达式进行检验,如果为真,则返回表达式2的值;如果为假,则返回表达式3的值。 例如: a=(b>0)?b:-b; 当b>0时,a=b;当b不大于0时,a=-b;这就是条件表达式。其实上面的意思就是把b的绝对值赋值给a。 i++ 相当于 i = i+1;
这里的condition表示条件,其本质是一个bool值,若condition为真,则执行statement_1,否则执行statement_2。
2、C/C++中的表达式是有值的,具体可参考《C++ Primer》第四章--表达式;赋值表达式的值就是"="左边的的值,表达式 a = 2 的值就是a,即 2.
3、C/C++中存在基本类型到bool值的转换,char int long float doule……非0值为True,0值为false;c++中的类可以定义到bool的转换操作符也可以将一个对象转换为bool值;
所以表达式(a = 2)的值 2 转换为bool值true 代入condition进行判断,condition为真, 执行statement_1.