C++隐性类型转换
2017-03-21 16:07
155 查看
_**C++中隐性类型转换**
c++在做算术运算时,同一个算术运算符,要求它的操作数类型要一致,如果不一致,编译器会自动对操作数进行类型转换
·
一般来讲,是向上转型,在float,double,long double 指尖是完全适用的!
一般int一下的操作都会转换成int型计算,包括printf 这种运算也会自动转换。
转型的时候会用到扩展和截断的知识:
理解这一点的关键是明白计算机中的二进制数据在转换时除了补符号位,和补零之外,数据是不会改变的,只是根据它的类型不同而被编译器解释为其他数据,比如
这段代码中实现了char和unsigned char,以十进制形式输出。char被符号位扩展成int型,而unsigned char 被零扩展成int。
另外,还需要注意的是c++中cout输出指针类型,并不是输出指针本身(地址)而是指向的内容
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输出指针类型,并不是输出指针本身(地址)而是指向的内容
相关文章推荐
- C++基本类型隐性转换。
- C++中类型转换(隐性)
- 如何在编译时刻判断两个类型是否可以自动转换?——《Modern C++ Design》读书笔记(1)
- C++ 中byte[] 类型到long类型的转换
- 王老师 C++ 类型转换
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast(转)
- 关于linux下C++中利用socket时的数据类型转换错误
- C++类型中的转换--static_cast 和 reinterpret_cast
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast (1)
- C++中数据类型的转换
- 用标准C++进行string与各种内置类型数据之间的转换
- C++ 中int 和string 的类型转换
- 明确C++风格的类型转换的用法
- C++中类型转换(转载)
- 利用C++的stringstream对各种数据类型转换
- C++类型中的转换--static_cast 和 reinterpret_cast
- C++的类型转换
- C++数据类型转换
- C++类型中的转换--static_cast 和 reinterpret_cast
- 标准C++的类型转换符:static_cast、dynamic_cast、reinterpret_cast和const_cast(转载)