文档章节

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
03/28
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
C Primer Plus 第5章 运算符、表达式和语句 5.5 类型转换

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

idreamo
2016/05/21
33
0

没有更多内容

加载失败,请刷新页面

加载更多

小白带你认识netty(三)之NioEventLoop的线程(或者reactor线程)启动(一)

在第一章中,我们看关于NioEventLoopGroup的初始化,我们知道了NioEventLoopGroup对象中有一组EventLoop数组,并且数组中的每个EventLoop对象都对应一个线程FastThreadLocalThread,那么这个...

天空小小
49分钟前
0
0
PHP动态扩展Redis模块

查看已有模块 [root@test-a ~]# /usr/local/php/bin/php -m[PHP Modules]bz2Core...zlib[Zend Modules] 下载包,解压,生成configure文件 [root@test-a ~]# cd /usr/local/src/[ro......

野雪球
今天
1
0
在Ignite中使用线性回归算法

在本系列前面的文章中,简单介绍了一下Ignite的机器学习网格,下面会趁热打铁,结合一些示例,深入介绍Ignite支持的一些机器学习算法。 如果要找合适的数据集,会发现可用的有很多,但是对于...

李玉珏
今天
2
0
Mybatis应用学习——简单使用示例

1. 传统JDBC程序中存在的问题 1. 一个简单的JDBC程序示例: public class JDBCDemo {public static void main(String[] args) {Connection con=null;PreparedStatement statemen...

江左煤郎
今天
2
0
使用JavaScript编写iOS应用业务逻辑

JSAUIKitCocoa使你可以使用JavaScript编写对性能要求不高但可能变动性很大的iOS应用的业务逻辑部分,View组件、需要多线程支持的Model等则直接使用原生对象。 编写方式与React Native相似,但...

neal01
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部