关于C语言基础的问题,要求解过程4

来源:百度知道 编辑:UC知道 时间:2024/06/09 02:29:48
已有定义double x; short i;,则不能正确给X赋70000.0的表达式是()
(A) x=7000*10.0
(B) x=i=70000.0
(C) x=35000+35000
(D) i=700, x=i*100
选最后一个为什么?

已有定义double x; short i;,则不能正确给X赋70000.0的表达式是()
(A) x=7000*10.0 //70000
(B) x=i=70000.0 //4464//i未赋初值,所以是i是个不可预料的地址
(C) x=35000+35000 //70000
(D) i=700, x=i*100 //70000

B

选B,但是原因不是//i未赋初值,所以是i是个不可预料的地址
原因是 short 70000已经越界了,
short 的范围是-0x7fff 到 0x7fff