大家好,欢迎来到IT知识分享网。
1.优先性和结合性
圆括号(
() ),使⽤它改变其他运算符的优先级
⾃增运算符(
++
),⾃减运算符(
—
)
单⽬运算符(
+
和
–
)
乘法(
*
),除法(
/
)
加法(
+
),减法(
–
)
关系运算符(
<
、
>
等)
赋值运算符(
=
)
2.问题表达式解析
表达式1
两种计算方法:
表达式1在计算的时候,由于 * ⽐ + 的优先级⾼,只能保证, * 的计算是⽐ + 早,但是优先级并不
*
⽐第⼀个
+
早执⾏。
表达式2
—
的运算在
+
的运算的前⾯,但是我们并没有办法得知,
+
操
假设我们为c赋值为5
情况1:+ 操作符的左操作数的获取在右操作数求值之前,那么这个表达式最终结果为5+4=9。
情况2:+ 操作符的左操作数的获取在右操作数求值之后,那么这个表达式最终结果为4+4=8。
表达式3
上述代码中,我们只知道先算*再算+,但我们并不能根据其优先级来决定三个函数谁先调用。
上述三个函数调用可能出现六种情况,不再一一说明。
3.整型提升
有符号整数提升是按照变量的数据类型的符号位来提升的
⽆符号整数提升,⾼位补0
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.算术转换
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/118219.html




