【C++ Primer学习笔记】第2章 变量和基本类型
来源:互联网 发布:usb3.0传输数据速度 编辑:程序博客网 时间:2024/06/05 10:35
1、基本内置类型
整型:整数、字符、布尔值
浮点型:浮点数
2、C++的内置类型与其在计算机的存储器中的表示方法密切相关。让存储具有结构的最基本方法是用块(Chunk)处理存储。块的大小因机器不同而不同,但是通常将8位的块作为一个字节,32位或4个字节作为一个“字”(word)。
3、带符号类型和无符号类型(整型独有)
整型 int, short, long都默认为带符号型,而无符号必须加上说明符 unsigned。
和其他整型不同,char有三种不同的类型:普通char, unsigned char, signed char。虽然char有三种不同的类型,但只有两种表示方式。可以使用unsigned char 或 signed char表示char类型。而使用哪种char表示方式由编译器而定。
C++中,把负值赋给unsigned对象是完全合法的,其结果是该负值对该类型的取值个数求模后的值。例如,如果把-1赋给8位的unsigned char, 那么结果是255,因为255是-1对256求模后的值。
4、对于实际的程序来说,float类型精度通常是不够,float型只能保证6位有效数字,而double型至少可以保证10位有效数字。
5、内置算数类型使用建议
1)实际上许多人用整型进行计数,而其中使用unsigned类型比较明智,可以避免值越界导致结果为负数的可能性。
2)当执行整型算数类型时,很少使用short类型,避免隐含赋值越界错误。
3)虽然char是整型,但通常用来存储字符而不用于计算。
4)大多数机器上,使用int类型进行整型计算不易出错。
5)决定使用浮点型时:使用double类型基本不会有错,且计算代价不一定比单精度高。
6、在字符串字面值连接过程中,字符串的类型必须是相同的。
例如:普通字符串 "AA", 宽字符串 L"BB"
Cout<<"AA"L"BB"<<endl; //错误,连接不同类型的行为标准没有定义。
7、多字面值。
在一行的末尾加一反斜线符号可以将此行与下一行当做同一行处理。
注意:反斜线符号必须是该行的尾符号,即不允许其后面有注释或空格。
8、C++是一门静态类型语言,在编译时会做类型检查。静态类型检查是的编译器必须能识别程序中得每个实体的类型。因此,程序中使用变量前必须定义变量的类型。
9、变量有左值和右值两种表现形式。变量名又数字、字母和下划线组成,必须以字母或下划线开头。
10、变量初始化方式
1)复制初始化(copy-initialization): int ival=1024;
2)直接初始化(direct-initialization): int ival(1024);
直接初始化语法更灵活效率更高,详见13章。
11、内置类型在函数体外定义的变量都初始化成0,而函数体里定义的内置类型变量不进行自动初始化。
12、变量在一个程序中有且仅有一个定义,但可以有多个声明。声明用关键字extern说明。
extern声明不是定义,也不分配存储空间。事实上,它只说明变量定义在程序的其他地方。但如果声明有初始化,那么它可被当做是定义,即使声明标记为extern。
13、const限定符
1)const将一个变量对象转换成一个常量,因为常量在定以后不能被修改,所以再定义时必须初始化。
2)非const对象默认为extern,即在一个文件全局作用域定义后可以被其他文件访问。而const对象默认为文件的局部变量,要是其能够在其他的文件中访问,必须显示地在定义时指定它为extern。
14、引用&
1)引用必须用与该引用同类型的对象初始化。
2)当引用初始化后,只要该引用存在,它就保持绑定到初始化时指向的对象。
3)将非const引用绑定到const对象是不合法的。
4)const引用可以初始化为不同类型的对象或者初始化为右值。
例如:
double val = 3.14; const int &a = val;
const int &r = 42;
这两种情况在非const引用都是非法的。
15、typedef的使用目的:
1)为了隐藏特定类型的实现,强调使用类型的目的。
2)简化复杂的类型定义,使其更容易理解。
3)允许一种类型用于多个目的,同时使得每次使用该类型的目的明确。
16、不能改变枚举成员的值。枚举成员本身就是一个常量表达式,所以也可用于需要常量表达式的任何地方。枚举类型的对象的初始化或赋值,只能通过其枚举成员或同一枚举类型的其他对象来进行。
17、class与struct的区别:
用class与struct关键字定义类的唯一差别在于默认访问级别:默认情况下,struct的成员为public,class的成员为private。
- 《c++primer》笔记 第2章 变量和基本类型
- C++Primer学习:第2章 变量和基本类型
- [C++Primer]第2章.变量和基本类型
- 《C++ Primer(第5版)》学习笔记:第2章 变量和基本类型
- C++ Primer笔记 第2章 变量和基本类型
- 【C++ Primer学习笔记】第2章:变量和基本类型
- 【C++ Primer学习笔记】第2章 变量和基本类型
- C++Primer学习笔记第二章(2/18) 变量和基本类型
- c++primer 学习笔记(2.0)变量和基本类型
- c++primer学习笔记1 - 变量和基本类型
- C++Primer学习笔记之变量和基本类型
- C++Primer笔记--变量和基本类型
- C++Primer笔记 第二章 变量和基本类型
- C++Primer第二章(变量和基本类型)笔记
- c++ primer 学习笔记,第二章变量和基本类型
- c++ primer 学习笔记 第二章 变量和基本类型
- C++ Primer学习笔记(unit 2 变量和基本类型
- C++primer学习笔记(一):第二章.变量和基本类型
- java链接Mysql数据库的代码!!!
- transient,volatile和strictfp
- java读取Properties文件value需要换行的处理
- 网络状态检测方法分析
- 如何从历史回退堆栈中删除Activity自己
- 【C++ Primer学习笔记】第2章 变量和基本类型
- Windows 下CUDA 开发环境安装及配置步骤
- 错误"Unable to find manifest signing certificate in the certificat...
- java中关键字volatile的作用
- redis源代码分析 – event library
- iOS5 新加入ARC的 strong、weak、unsafe_unretained功能的解释
- uboot中的TEXT_BASE
- 我的ctags命令以及一些参数解释
- Windows Server下查看当前登录用户命令