C/C++面试题: char x=119; char y=9; char z=x+y; 则z= ?

日期:2021-07-30 03:11:55 人气:1

C/C++面试题: char x=119; char y=9; char z=x+y; 则z= ?

C++规定char类型的最小存储空间是8位。所以超过8位大小的赋值行为都是未定义的,讨论起来没有意义。如果按8位来讨论:
char是指plain char,依赖编译器决定它是unsigned还是signed
但作为8位的char来计算,char z = 128 应该是溢出了
对于溢出的处理也是未定义的。大部分编译器的做法是“截断”,去掉溢出的高位。这个结果是-128,所以z = -128。总结,z的结果是未定义的
    A+
热门评论