文档章节

4. 类型转换

 小清年
发布于 2014/05/11 20:19
字数 536
阅读 3
收藏 0

4. 类型转换

4.1 在执行算术运算时,通常要求两个操作数有相同的大小(位数相同),并且存储方式也相同。例如:计算机可以直接将两个16为整数相加,但是不能直接将16位整数和32位整数相加,也不能直接将32位整数和32位浮点数相加。
4.2 如果我们一个表达式中混合使用了不同的数据类型,编译器会自动进行类型转换,这种转换叫做隐式转换。
4.3 程序员也可以进行强制类型转换,这种转换称为显示转换。
4.4 下面情况下,可以进行隐式转换:
当算术表达式或逻辑表达式中操作数类型不相同时
赋值运算中两端类型不相同时
函数调用中实参和形参类型不相同时
return 语句和函数的返回值不相同时
4.5 转换原则,小类型自动转换为大类型,整型转换为浮点型
如果任何一个操作数是浮点数的情况:

如果都不是浮点数的情况:

4.6 强制类型转换语法格式
(类型)表达式 例如:float f; int i = (int)f;
#include <stdio.h>
// 算术运算转换
void test1() {
            char c;
            short int s;
            int i;
            unsigned int u;
            long int l;
            unsigned long int ul;
            float f;
            double d;
            long double ld;
            // c自动转换为int类型
            i = i + c;
            // s 自动转换为int类型
            i = i + s;
            // i 自动转换为unsinged int类型
            u = u + i;
            // u 自动转换为long int类型
            l = l + u;
            // l 自动转换为 unsinged long int
            ul = ul + l;
            // ul 自动转换为float类型
            f = f + ul;
            // f 自动转换为double类型
            d = d + f;
            // d 自动转换为long double
            ld = ld + d;
}
// 赋值转换
void test2(){
            char c;
            int i;
            float f;
            double d;
            // c 自动转换为int
            i = c;
            // i 自动转换为float
            f = i;
            // f 自动转换为double
            d = f;
}
// 强制类型转换
void test3(){
            float f = 3.14;
            int i = (int)f;
            printf("i=%d",i);
}
int main(void) {
            //test1();
            //test2();
            test3();
}

该博客教程视频地址:http://geek99.com/node/968

本文转载自:http://geek99.com/node/825#

共有 人打赏支持
粉丝 0
博文 70
码字总数 0
作品 0
门头沟
C++的类型转换

1、类型转换名称和语法 C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。    sta...

沙米笔记
2016/06/26
59
0
C++与类型转换相关的四个关键字

C++与类型转换相关的四个关键字有:constcast、staticcast、dynamiccast、reinterpretcast C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是: TYPE b = (TYPE)a。 C++风格的...

Jim-he
03/28
0
0
C++开发必看 四种强制类型转换的总结

  【IT168 技术】C风格的强制类型转换(Type Cast)很简单,不管什么类型的转换统统是:   TYPE b = (TYPE)a   C++风格的类型转换提供了4种类型转换操作符来应对不同场合的应用。   c...

goodhacker的博客
2011/07/22
0
0
[C++再学习系列] 隐式类型转换与转换操作符

  C++标准允许隐式类型转换,即对特定的类,在特定条件下,某些参数或变量将隐形转换成类对象(创建临时对象)。如果这种转换代价很大(调用类的构造函数),隐式转换将影响性能。隐式转换的发...

技术小美
2017/11/05
0
0
javascript基本数据类型转换

数据类型 基本数据类型 数字 (number) 字符串 (string) 布尔值 (boolean) null (object) undefined (undefined) 对象 除基本类型以外的类型都Object类型,包括,一般对象,数组,函数(functi...

别划水了
2016/03/08
26
0

没有更多内容

加载失败,请刷新页面

加载更多

20180920 rzsz传输文件、用户和用户组相关配置文件与管理

利用rz、sz实现Linux与Windows互传文件 [root@centos01 ~]# yum install -y lrzsz # 安装工具sz test.txt # 弹出对话框,传递到选择的路径下rz # 回车后,会从对话框中选择对应的文件传递...

野雪球
今天
0
0
OSChina 周四乱弹 —— 毒蛇当辣条

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @ 达尔文:分享花澤香菜/前野智昭/小野大輔/井上喜久子的单曲《ミッション! 健?康?第?イチ》 《ミッション! 健?康?第?イチ》- 花澤香菜/前野智...

小小编辑
今天
6
2
java -jar运行内存设置

java -Xms64m #JVM启动时的初始堆大小 -Xmx128m #最大堆大小 -Xmn64m #年轻代的大小,其余的空间是老年代 -XX:MaxMetaspaceSize=128m # -XX:CompressedClassSpaceSize=6...

李玉长
今天
1
0
Spring | 手把手教你SSM最优雅的整合方式

HEY 本节主要内容为:基于Spring从0到1搭建一个web工程,适合初学者,Java初级开发者。欢迎与我交流。 MODULE 新建一个Maven工程。 不论你是什么工具,选这个就可以了,然后next,直至finis...

冯文议
今天
1
0
RxJS的另外四种实现方式(四)——性能最高的库(续)

接上一篇RxJS的另外四种实现方式(三)——性能最高的库 上一篇文章我展示了这个最高性能库的实现方法。下面我介绍一下这个性能提升的秘密。 首先,为了弄清楚Most库究竟为何如此快,我必须借...

一个灰
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部