文档章节

4. 类型转换

 小清年
发布于 2014/05/11 20:19
字数 536
阅读 3
收藏 0
点赞 0
评论 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
C Primer Plus 第5章 运算符、表达式和语句 5.5 类型转换

1、当出现在表达式里时,有符号和无符号的char和short类型都将被自动转换为int,在需要的情况下,将自动被转换为unsigned int。在K&RC下,但不是在当前的C下,folat将被自动转换为double.因为...

idreamo
2016/05/21
33
0
C++的类型转换

目录 前言 在看到C++中static_cast等东东的时候,不知道这个代表什么,然后就对C++产生了一点惧怕,原来还以为是模板里的东西,所以把模板学了学,后来才发现是类型转换用的。 学习!分享!感...

simonforfuture
01/04
0
0
[Java教程 09] 数据类型转换与运算

数据类型转换默认转换 +是一个运算符, 我们应该能够看懂,做数据的加法。 boolean类型不能转换为其他的数据类型 默认转换 byte,short,char—int—long—float—double byte,short,char相互之...

呆萌钟
04/14
0
0
TLV 格式及编解码示例

TLV是一种可变格式,意思就是: Type类型, Lenght长度,Value值; Type和Length的长度固定,一般那是2、4个字节(这里统一采用4个字节); Value的长度有Length指定; 编码方法: 1. 将类型...

鉴客
2011/12/10
1K
0
C++的四种新式显示转换和一种旧式显示转换

C++的四种新式显示转换和一种旧式显示转换 1、静态转换(static_cast) static_cast包含的转换类型有典型的非强制变换、窄化(有信息丢失)变换、使用void*的强制转换、隐式类型 变换、类层次...

扬名立万
2014/07/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java8新特性之接口

在JDK8以前,我们定义接口类中,方法都是抽象的,并且不能存在静态方法。所有的方法命名规则基本上都是 public [返回类型] [方法名](参数params) throws [异常类型] {}。 JDK8为接口的定义带...

developlee的潇洒人生
43分钟前
0
0
aop + annotation 实现统一日志记录

aop + annotation 实现统一日志记录 在开发中,我们可能需要记录异常日志。由于异常比较分散,每个 service 方法都可能发生异常,如果我们都去做处理,会出现很多重复编码,也不好维护。这种...

长安一梦
54分钟前
2
0
将博客搬至CSDN

AHUSKY
今天
1
0
Python web框架Django学习(1)

1.Django简介 (1)Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。Django是一个开放源代码的Web应用框架,由Python写成。 (2...

十年磨一剑3344
今天
0
0
Databook-数据之书

Databook-数据之书 用于数据分析的Jupyter Notebooks。 不需购买服务器,快速开始自己的数据分析过程。 源码:https://github.com/openthings/databook 作者:openthings,https://github.co...

openthings
今天
5
0
Python PIPEs

https://www.python-course.eu/pipes.php https://www.tutorialspoint.com/python/os_pipe.htm

zungyiu
今天
1
0
gRPC学习笔记

gRPC编程流程 1. proto文件定义 proto文件用于定义需要通过gRPC生成的接口,可以理解为接口定义文档 2. 通过构建工具生成服务基类代码-Maven或Gradle 3. 服务端开发 服务端实现类须实现通过构...

OSC_fly
今天
0
0
Docker Mac (三) Dockerfile 及命令

Dockerfile 最近学习docker的时候,遇到一件怪事,关于docker镜像可能会被破坏,还不知道它会有此措施 所以需要了解构建Dockerfile的正确方法 Dockerfile是由一系列命令和参数构成的脚本,这些命...

___大侠
今天
0
0
Android Studio+NDK+Cmake 移植FFmpeg-4.0.2命令行工具

一、编译 参考大神的帖子,亲测一次编译成功:https://blog.csdn.net/bobcat_kay/article/details/80889398 鉴于以前查文档的经验,这里附上编写例子的时间:2018年7月22日 我用的是ubantu,...

她叫我小渝
今天
0
0
mysql创建数据库

登录MYSQL mysql -u root -p 脚本创建数据库WeChat,并制定默认的字符集是utf8mb4。 CREATE DATABASE Wechat DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_general_ci; 授权 grant all......

niithub
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部