C语言中的“强制类型转换”是怎样实现的?谢谢了,大神帮忙啊

Python012

C语言中的“强制类型转换”是怎样实现的?谢谢了,大神帮忙啊,第1张

(type)<expression>

其中,type为类型描述符,如int,float等。<expression>为表达式。经强制类型转换运算符运算后,返回一个具有type类型的数值,这种强制类型转换操作并不改变操作数本身,运算后操作数本身未改变,例如:

int

nVar=0xab65

char

cChar=char

(nVar)

上述强制类型转换的结果是将整型值0xab65的高端两个字节删掉,将低端两个字节的内容作为char型数值赋值给变量cChar,而经过类型转换后nVar的值并未改变。

0xF0000000 超过了 int 的表示范围,在对其进行运算时会自动将其转换为 unsigned int 类型,这一过程称为“整型提升”。-0xF0000000 运算的结果也是 unsigned int 类型,所以是大于 0 的。

我知道啊,呵呵,因为printf("%d",'12'),打印的是存储12的内存地址上的内容,即ASCII码值,12的低位数存储在低位地址,即1存储在低位,高位存储在高位地址,0x32就是2的ASCII码,0x31就是1的ASCII码,所以是0x3231,转换成10进制就是12849!