1.优先性和结合性
2.问题表达式解析
表达式1
两种计算方法:
表达式1在计算的时候,由于 * ⽐ + 的优先级⾼,只能保证, * 的计算是⽐ + 早,但是优先级并不

表达式2
假设我们为c赋值为5
情况1:+ 操作符的左操作数的获取在右操作数求值之前,那么这个表达式最终结果为5+4=9。
情况2:+ 操作符的左操作数的获取在右操作数求值之后,那么这个表达式最终结果为4+4=8。
表达式3
上述代码中,我们只知道先算*再算+,但我们并不能根据其优先级来决定三个函数谁先调用。
上述三个函数调用可能出现六种情况,不再一一说明。
3.整型提升


1.在C语言中,如果将一个short类型的变量赋值给一个char类型的变量,那么将会发生隐式类型转换。在这种情况下,short类型的值将被转换为char类型的值。转换的结果取决于被转换的short值是否在char类型的表示范围内。如果被转换的short值在char类型的表示范围内(即在-128到127之间,如果是有符号char类型),则转换后的结果保持原值。但如果被转换的short值超出了char类型的表示范围,则转换后的结果会截断,仅保留char类型能表示的位数。
2.如果将一个short类型的变量与一个char类型的变量相加,并将结果赋值给一个char类型的变量,那么在大多数情况下,结果将是一个char类型的值。这是因为在C语言中,表达式的类型通常由操作数的类型决定,而char类型的值和short类型的值在进行运算时会发生隐式类型提升,结果的类型会与操作数中较高的类型相同。因此,short类型的值会被提升为int类型,然后与char类型的值相加,最后的结果会是int类型。然后,这个int类型的值将被转换为char类型,并赋值给char类型的变量。然而,需要注意的是,如果short类型的值和char类型的值相加后超出了char类型的表示范围,那么结果将是未定义的行为。因为char类型的范围可能比short类型的范围要小,这种情况下会发生溢出。所以在这种情况下,结果可能是char类型的值,也可能是int类型的值,具体取决于编译器的实现。
4.算术转换
