文档章节

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#

共有 人打赏支持
上一篇: 1. 赋值运算
下一篇: 3. 字符型
粉丝 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
2018/03/28
0
0
[C++再学习系列] 隐式类型转换与转换操作符

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

技术小美
2017/11/05
0
0
C++开发必看 四种强制类型转换的总结

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

goodhacker的博客
2011/07/22
0
0
javascript基本数据类型转换

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

别划水了
2016/03/08
26
0

没有更多内容

加载失败,请刷新页面

加载更多

利用神器BTrace 追踪线上 Spring Boot应用运行时信息

概述 生产环境中的服务可能会出现各种问题,但总不能让服务下线来专门排查错误,这时候最好有一些手段来获取程序运行时信息,比如 接口方法参数/返回值、外部调用情况 以及 函数执行时间等信...

CodeSheep
39分钟前
3
0
OSChina 周四乱弹 —— 我想过年请假提前回家两天

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @clouddyy :#每日一歌# 分享王力宏的单曲《爱错》 《爱错》- 王力宏 手机党少年们想听歌,请使劲儿戳(这里) @Caremorele :这几天起床有点...

小小编辑
今天
59
5
Cookie 显示用户上次访问的时间

import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.serv......

gwl_
今天
1
0
网络编程

第14天 网络编程 今日内容介绍  网络通信协议  UDP通信  TCP通信 今日学习目标  能够辨别UDP和TCP协议特点  能够说出UDP协议下两个常用类名称  能够说出TCP协议下两个常用类名称...

stars永恒
今天
3
0
二进制相关

二进制 众所周知计算机使用的是二进制,数字的二进制是如何表示的呢? 实际就是逢二进一。比如 2 用二进制就是 10。那么根据此可以推算出 5的二进制等于 10*10+1 即为 101。 在计算机中,负数以...

NotFound403
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部