【读书笔记】C++Primer---第二章
1.C++基本数据类型:字符型、整型、浮点型等;
2.算术类型如下表,下表只是表示C++要求的最小储存空间,但是一般编译器使用的都比所要求的储存空间大,以前类型所能表示的最大值也因机器的不同而有不同的最大值。
| 类型 | 含义 | 最小存储空间 |
| bool | 布尔型 | -- |
| char | 字符型 | 8位 |
| wchar_t | 宽字符型 | 16位 |
| short | 短整型 | 16位 |
| int | 整型 | 16位 |
| long | 长整型 | 32位 |
| float | 单精度浮点型 | 6位有效数字 |
| double | 双精度浮点型 | 10位有效数字 |
| long double | 扩展精度浮点型 | 10位有效数字 |
3.字符类型有两种,char和wchar_t,char一般是单个机器字节,wchar_t可以储存中文和日文等,不是单个字节;
4.默认的类型都是有符号的,如果需要表示无符号类型,必须指定该类型为unsigned,比如unsigned long,unsigned int,如果单是unsigned则表示unsigned int;
5.在C++中,将一个超过取值范围的值赋给一个类型,会对该类型最大值进行取模后赋值,如将-1赋给unsigned char,那么结果将是255,但是不能保证所有的编译器都是这个规则;
6.字面值整型默认就是int或者是long类型的,根据其大小默认为特定的一种类型,如符合int,该值就属于int类型,大于int的最大值,则属于long类型。通过增加后缀,能够强制将字面值整型常亮转换为long、unsigned或者unsigned long,如128u代表unsigned类型、1L代表long类型、1024UL代表unsigned long;
7.默认的小数字面值都是double类型的,在数值后面加上F或者f表示单精度,同样加上L或者l代表扩展精度类型;
8.如L'a'则表示为wchar_t类型的字面值;
9.为了兼容C语言,C++中所有的字符串字面值都由编译器自动在末尾添加一个空格符,L"hello world"代表以一个宽字符结尾的字面值;
10.C++的标识符不能包含两个连续的下划线,也不能以下划线开头后面紧跟一个大写字母,有些标识符也不能以下划线开头;
11.初始化是指创建变量并给它赋初始值,而赋值则是擦除对象的当前值并用新值替代,所以初始化不是赋值!;
12.extern仅仅只是声明,不是定义,变量必须且只能定义一次,而且在使用变量之前必须定义或者声明变量;
13.在const变量想被其他文件访问时,需要在声明的时候加上extern,非const变量则默认都是extern;
14.一个引用变量在定义的时候必须初始化;
15.typedef通常被用于三中目的:a.为了隐藏特定类型的实现,强调使用类型的目的;b.简化复杂的类型定义,使其更易理解;c.允许一种类型用于多个目的,同时使得每次使用该类型的目的明确;
16.枚举的格式:enum open_modes {input, output, append};
17.类的定义包括一个接口和实现;
18.如果使用class关键字来定义类,那么定义在第一个访问标号钱的任何成员都隐式指定为private,如果用struct,则为public,这就是struct和class之间的区别;
19.因为变量和函数在使用前都需要提前声明,所以C++支持分别编译,将函数和变量的声明放到头文件,而类的实现则放到cpp文件;
【读书笔记】C++Primer---第二章的更多相关文章
- Linux 读书笔记 三 (第二章)
一.学习目标 1. 理解二进制在计算机中的重要地位 2. 掌握布尔运算在C语言中的应用 3. 理解有符号整数.无符号整数.浮点数的表示 4. 理解补码的重要性 5. 能避免C语言中溢出,数据类型转 ...
- 《Android开发艺术探索》读书笔记 (3) 第3章 View的事件体系
本节和<Android群英传>中的第五章Scroll分析有关系,建议先阅读该章的总结 第3章 View的事件体系 3.1 View基本知识 (1)view的层次结构:ViewGroup也是 ...
- 《Linux内核设计与实现》读书笔记——第一、 二章
<Linux内核设计与实现>读书笔记--第一. 二章 标签(空格分隔): 20135321余佳源 第一章 Linux内核简介 1.Unix内核特点 十分简洁:仅提供几百个系统调用并且有明确 ...
- SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章)
SQL Server2012 T-SQL基础教程--读书笔记(8 - 10章) 示例数据库:点我 CHAPTER 08 数据修改 8.1 插入数据 8.1.1 INSERT VALUES 语句 8.1 ...
- 《Android开发艺术探索》读书笔记 (13) 第13章 综合技术、第14章 JNI和NDK编程、第15章 Android性能优化
第13章 综合技术 13.1 使用CrashHandler来获取应用的Crash信息 (1)应用发生Crash在所难免,但是如何采集crash信息以供后续开发处理这类问题呢?利用Thread类的set ...
- C++PRIMER第二章前半部分答案
C++PRIMER第二章前半部分答案 哈哈哈,为什么是前半部分呢,后半部分还在学习中,重新系统性的学习c++,共同进步嘛,不多说,跟我一起来看看吧,第三章开始才是新手收割的时候,慢慢来~~ 2.1&a ...
- JS高程读书笔记-第一、二章-内附在线思维导图和quizlet卡片
之前在kindle上买了高程,今天又到了纸质的<JavaScript语言精粹>,<高性能JavaScript>,<JavaScipt设计模式>,开始读书之旅啦. 我 ...
- 《Android开发艺术探索》读书笔记 (9) 第9章 四大组件的工作过程
第9章 四大组件的工作过程 9.1 四大组件的运行状态 (1)四大组件中只有BroadcastReceiver既可以在AndroidManifest文件中注册,也可以在代码中注册,其他三个组件都必须在 ...
- 《Linux内核设计与实现》读书笔记 第一、二章
第一章 Linux内核简介 1.1Unix历史 Unix特点:1.很简洁 2.所有东西都被当成文件对待 3.Unix内核和相关的系统工具软件都是用C语言编写而成 4.进程创建非常迅速 所以Uni ...
- 《利用python进行数据分析》读书笔记 --第一、二章 准备与例子
http://www.cnblogs.com/batteryhp/p/4868348.html 第一章 准备工作 今天开始码这本书--<利用python进行数据分析>.R和python都得 ...
随机推荐
- 【一天一道LeetCode】#121. Best Time to Buy and Sell Stock
# 一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Say ...
- UNIX环境高级编程——记录上锁(fcntl函数)以及死锁检测
一.记录锁 record locking 功能:当一个进程正在读或修改文件的某个部分时,它可以阻止其它进程修改同一文件区. 字节范围锁 byte-range locking 二.历史 flock函数, ...
- UNIX环境高级编程——管道和FIFO限制
系统加于管道和FIFO的唯一限制为: OPEN_MAX 一个进程在任意时刻打开的最大描述符数: PIPE_BUF 可原子的写往一个管道或FIFO的最大数据量. OPEN_MAX的值 ...
- javascript之prototype原型属性
这个地方有点绕,仔细理解代码的意义. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- mixer: 一个用go实现的mysql proxy
介绍 mixer是一个用go实现的mysql proxy,支持基本的mysql代理功能. mysql的中间件很多,对于市面上面现有的功能强大的proxy,我主要考察了如下几个: mysql-proxy ...
- Android官方技术文档翻译——构建工作流
本文译自androd官方技术文档<Build Workflow>,原文地址:http://tools.android.com/tech-docs/new-build-system/buil ...
- (四十三)UITabBarController和AppDelegate的一些细节
假设一个UITabBar是V1,V2,V3三个视图的根控制器. 一进入程序的时候,只会加载一个视图V1,也就是说UITabBar是延迟加载的. Tip:通过代码创建的UITabBar会一次性加载所有视 ...
- C# 基于密码的身份验证报错问题System.Net.NetworkCredential
今天碰到个很奇怪的问题,在用下面这段代码调试时获取身份验证时居然报错,更奇怪的是本地VS中调试正常而在虚机上调试就报错了 ClientCredentials clientCredentials = n ...
- batch gradient descent(批量梯度下降) 和 stochastic gradient descent(随机梯度下降)
批量梯度下降是一种对参数的update进行累积,然后批量更新的一种方式.用于在已知整个训练集时的一种训练方式,但对于大规模数据并不合适. 随机梯度下降是一种对参数随着样本训练,一个一个的及时updat ...
- linux下安装ruby版本管理器RVM
这里以ubuntu为例. 直接以如下命令行安装可能会不成功,因为rvm.io站点有时会被墙: curl -sSL https://get.rvm.io | bash -s stable #或者 cur ...