您的位置:首页 > 编程语言 > C语言/C++

C++隐性类型转换

2017-03-21 16:07 155 查看
_**C++中隐性类型转换**

c++在做算术运算时,同一个算术运算符,要求它的操作数类型要一致,如果不一致,编译器会自动对操作数进行类型转换

转换规则:

转换表



·

一般来讲,是向上转型,在float,double,long double 指尖是完全适用的!

一般int一下的操作都会转换成int型计算,包括printf 这种运算也会自动转换。

转型的时候会用到扩展和截断的知识:

理解这一点的关键是明白计算机中的二进制数据在转换时除了补符号位,和补零之外,数据是不会改变的,只是根据它的类型不同而被编译器解释为其他数据,比如

char a = 0xa0;
unsigned char b = a;
printf("%x %x",a,b);

打印结果:ffffffa0 a0


这段代码中实现了char和unsigned char,以十进制形式输出。char被符号位扩展成int型,而unsigned char 被零扩展成int。

另外,还需要注意的是c++中cout输出指针类型,并不是输出指针本身(地址)而是指向的内容
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: