以下代码执行后,val的值是___: unsigned long val = 0; char a = 0x48; char b = 0x52; val = b << 8 | a; 20992 21064 72 0
unsigned long val = 0; char a = 0x48; char b = 0x52; val = b << 8 | a;
这里面涉及到了默认类型转换:当出现在表达式里时,有符号和无符号的char和short都会被自动转换为int类型,在需要的情况下,将自动转换为unsigned int类型,在K&C中(不是当前的C)中,float会被自动转换为double类型。