读书笔记:C++ Primer系列(12)—— 类型转换

题记:类型转换就是将给定类型的表达式转换为另一种类型。C++中的转型可分为两种:隐式类型转换和显式类型转换。

隐式转换


隐式转换不需要任何转换运算符,编译器会自动根据类型兼容性进行不同类型之间的转换。一般情况下,在C/C++中这种转换多出现在基本数值类型上,其基本原则就是所需内存小的类型可以直接转换成内存大相同的或者。

例如:

int a=0;

a=3.1415+3;

运行结果为:6

解释:

  上述加法操作中,其操作数是两个不同类型的值:3.1415是double类型的字面值常量,3是int类型的字面值常量。C++并不是把两个不同类型的值直接相加,而是要通过转换为同一种数据类型后再相加。

  C++定义了算术类型之间的内置转换以尽可能防止精度损失,通常,如果表达式含有整型和浮点型,则将整型操作数转换为浮点型。上例中,整数3被转换为double类型后,执行浮点类型的加法操作,得double类型的结果6.1415,最后将double类型的值赋给整型变量a。double类型向int类型转换自动按截尾形式进行,舍弃小数部分。

读书笔记:C++ Primer系列(12)—— 类型转换,码迷,mamicode.com

时间: 2024-12-19 22:21:24

读书笔记:C++ Primer系列(12)—— 类型转换的相关文章

读书笔记:C++ Primer系列(11)—— 表达式

定义: 表达式(expression)是由一个或多个操作数(operand)通过操作符(operator)组合而成. 1. 操作符--除法(/)和求模(%) 注意: 除法和求模两种运算,操作数都必须是整型,包括:bool.char.short.int和long类型,以及对应的unsigned类型 如果两个操作数为正,除法和求模操作的结果也是正数或为零: 如果两个操作数为负,除法操作的结果为正数或为零,而求模的结果为负数或为零: 如果两个操作数,一个为正一个为负,除法和求模的结果取决于机器:如果求

读书笔记之:C++ Primer (第4版)及习题(ch12-ch18) [++++]

读书笔记之:C++ Primer (第4版)及习题(ch12-ch18) [++++] 第12章 类 1. 类的声明与定义:前向声明,不完全类型 2. 从const函数返回*this 3. 可变数据成员mutable 4. 用于const对象的构造函数:构造函数不能声明为const 5. 构造函数初始化式 构造函数的执行分为两个阶段:初始化阶段和普通的计算阶段 6. 构造函数初始化列表 7. 默认实参与构造函数 8. 类通常定义一个默认构造函数,不然的话使用起来会很麻烦. 9. 使用默认构造函数

《C++ Primer 4th》读书笔记 序

注:本系列读书笔记是博主写作于两三年前的,所以是基于<C++ Primer>第四版的,目前该书已更新至第五版,第五版是基于C++11标准的,貌似更新挺多的.博主今年应届硕士毕业,如若过阵子能如愿找到一份Linux C/C++方面的工作,我会重读第五版,并对该系列读书笔记进行更新.另外,使用的作图工具是Minjet MindManager 2014. 第3章-标准库类型 第4章-数组和指针 第5章-表达式 第6章-语句 第7章-函数 第8章-标准IO库 第9章-顺序容器 第10章-关联容器 第1

C++ Primer 3rd 读书笔记

C++ Primer 3rd 读书笔记1/2 分类: C/C++/VC2014-04-08 20:43 318人阅读 评论(0) 收藏 举报 第一章    开始 1.       C++中标准的头文件是不带.h后缀的.如下代码值得注意: #include <iostream.h> void sayHello() { cout<<"Hello World!"; } void main() { sayHello(); } #include <iostream&

读书笔记之:C++ Primer (第4版)及习题(ch01-ch11) [++++]

读书笔记之:C++ Primer (第4版)及习题(ch01-ch11) [++++] 第2章 数据和基本类型 1. 整型 2. 习题:左值和右值 3. C++关键字/保留字和操作符替代值 4. 声明,定义, 初始化和赋值是不同的概念. 声明是说明一个变量的存在,不会为变量进行内存空间的分配. 定义是说明一个变量的存在,同时为这个变量分配对应的内存空间. 初始化就是在进行变量定义的时候在所分配的内存空间中同时填入有意义的值.如果不进行初始化的话,变量虽然有对应的内存空间,但是内存空间中对应 的内

C#刨根究底:《你必须知道的.NET》读书笔记系列

一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP-王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心得和感悟,将技术问题以生动易懂的语言展开,层层深入,以例说理.全书主要,包括了.NET基础知识及其深度分析,以.NET Framework和CLR研究为核心展开.NET本质论述,涵盖了.NET基本知识几乎所有的重点内容.全书分为5个部分,第1部分讲述.NET与面向对象,从底层实现角度分析了.NET如何实现面向

《C++primer》v5 第5章 语句 读书笔记 习题答案

5.1 空语句只有一个";".如果什么也不想做可以使用空语句. 5.2 用花括号{}括起来的叫块,也叫复合语句.有多条语句作用在同一个作用域时,需要用花括号括起来. 5.3 降低了. 5.4 (a)每次迭代时候会初始化iter,但是iter缺少初值,所以这段代码根本不会通过编译.另外这里的括号需要一个bool类型的,而定义迭代器根本不会返回一个bool类型.假如上面那些问题都可以通过,每次迭代都会初始化这个iter,会导致死循环. (b)我试了一下编译未通过是因为没找到适合的find函

《C++primer》v5 第3章 字符串、向量和数组 读书笔记 习题答案

3.1略 3.2 string str; //读行 while(getline(cin,str)) cout<<str<<endl; //读单个词 while(cin>>str) cout<<str<<endl; 3.3 输入运算符读到空白符结束 getline读到换行符结束,并丢弃换行符 3.4 比较大小. 比较大小是比较的第一个不相同的字符的大小. int main() { string a,b; cin>>a>>b;

《C++primer》v5 第1章 开始 读书笔记 习题答案

从今天开始在博客里写C++primer的文字.主要以后面的习题作业为主,会有必要的知识点补充. 本人也是菜鸟,可能有不对之处,还望指出. 前期内容可能会比较水. 1.1略 1.2略 1.3 cin和cout分别是istream和ostream的对象. #include<iostream> using namespace std; int main() { cout<<"Hello,world"<<endl; return 0; } 1.4 #incl