自动类型转换
2016-06-03 09:38
239 查看
对于自动类型转换,最常见的就是 混合运算 以及
赋值运算,还有一种就是函数值的类型转换
赋值运算:自动把“=”右边的表达式的类型转换成“=”右边的变量的类型,例如 int a=4.5; a的值实际是4!
混合运算:就是一个运算表达式当中包含了多个类型,这时候就需要有类型转换。当运算符两边的操作数类型不同时,其中一个操作数就要经过类型转换以和另一个操作数的类型相一致,然后才能进行运算。
变换操作数采取就高不就低的原则,即级别低的操作数先被转换成和级别高的操作数具有同一类型,然后再进行运算,结果的数据类型和级别高的操作数相同。
高 double ←← float
↑ ↑
↑ long
↑ ↑
↑ unsigned
↑ ↑
低 int ←← char,short
自动转换顺序表
函数返回值的类型转换: int f1(){ return 36.8;}
ubuntu 64位机器测试结果
windows 32位操作系统
赋值运算,还有一种就是函数值的类型转换
赋值运算:自动把“=”右边的表达式的类型转换成“=”右边的变量的类型,例如 int a=4.5; a的值实际是4!
混合运算:就是一个运算表达式当中包含了多个类型,这时候就需要有类型转换。当运算符两边的操作数类型不同时,其中一个操作数就要经过类型转换以和另一个操作数的类型相一致,然后才能进行运算。
变换操作数采取就高不就低的原则,即级别低的操作数先被转换成和级别高的操作数具有同一类型,然后再进行运算,结果的数据类型和级别高的操作数相同。
高 double ←← float
↑ ↑
↑ long
↑ ↑
↑ unsigned
↑ ↑
低 int ←← char,short
自动转换顺序表
int i = 0; i = 4.5 * 5; cout << i << endl; //22
unsigned int i = 10; int j = -1; if (i > j) { cout << "yes" << endl; } else { cout << "no" << endl; } 输出no
函数返回值的类型转换: int f1(){ return 36.8;}
ubuntu 64位机器测试结果
#include <iostream> using namespace std; int main() { cout << sizeof(double) << endl; cout << sizeof(long) << endl; cout << sizeof(float) << endl; cout << sizeof(unsigned) << endl; cout << sizeof(int) << endl; cout << sizeof(char) << endl; cout << sizeof(short) << endl; cout << sizeof(char*) << endl; int i; i = 3.14 + 'a'; } 8 8 4 4 4 1 2 8
windows 32位操作系统
#include <iostream> using namespace std; int main() { cout << sizeof(double) << endl; //8 cout << sizeof(long) << endl; //4 cout << sizeof(float) << endl; //4 cout << sizeof(unsigned) << endl; //4 cout << sizeof(int) << endl; //4 cout << sizeof(char) << endl; //1 cout << sizeof(short) << endl; //2 cout << sizeof(char*) << endl; //4 int i; i = 3.14 + 'a'; }
相关文章推荐
- 浅说css的绝对定位跟相对定位
- mysql的审计功能
- leetcode-Java-15. 3Sum
- Android学习笔记六十二:Java并发编程:volatile关键字解析
- 快速排序详解
- sqlserver 数据库用户密码过期
- 报表工具-ECharts 特性介绍
- 0603 感受与承诺
- 取消单元格的点击事件
- IF ERRORLEVEL 和 IF %ERRORLEVEL% 区别
- ssm框架web.xml中filter配置问题
- java的Date日期类增加天数的静态方法。
- Lecture 5:把无限多个假设降到有限个
- Thawte SSL Web Server 多域型SSL证书
- 日期与毫秒互转(转)
- [Python笔记]第十一篇:面向对象
- 利用bounds处理tableView顶部上下滑动
- 监控Linux性能的18个命令行工具
- 27. Remove Element [easy]
- mysql自身运行日志文件详解