C++ Primer 知识点总结 (第二章)

1. 算数类型

类型范围
char1 个字节-128 到 127 或者 0 到 255
col 2 iscentered$12
unsigned char1 个字节0 到 255
signed char1 个字节-128 到 127
int4 个字节-2147483648 到 2147483647
unsigned int4 个字节0 到 4294967295
signed int4 个字节-2147483648 到 2147483647
short int2 个字节-32768 到 32767
unsigned short int2 个字节0 到 65,535
signed short int2 个字节-32768 到 32767
long int8 个字节-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
signed long int8 个字节-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned long int8 个字节0 to 18,446,744,073,709,551,615
float4 个字节+/- 3.4e +/- 38 (~7 个数字)
double8 个字节+/- 1.7e +/- 308 (~15 个数字)
long double8 个字节+/- 1.7e +/- 308 (~15 个数字)
wchar_t2 或 4 个字节1 个宽字符

2.字符串的前后缀:

前缀意义
uunicode16字符
Uunicode32字符
L宽字符
u8utf-8
后缀意义
u或U表示该字面值为无符号类型
l或L表示该字面值的类型至少为long
ll或LL表示该字面值的类型至少为long long
f或F表示该字面值为float类型

前后缀可以交叉结合使用:后缀UL时,表示无符号长整型。
字符用单引号‘’,字符串用双引号“”。
十进制:20 八进制:020 十六进制:0x20或者0X20

3.类型转换

当我们把一个非布尔类型的算术值赋给布尔类型时,初始值为0则结果为false,否则结果为true。
当我们把一个布尔值赋给非布尔类型时,初始值为false则结果为0,初始值为true则结果为1。
当我们把一个浮点数赋给整数类型时,进行了近似处理。结果值将仅保留浮点数中小数点之前的部分。
当我们把一个整数值赋给浮点类型时,小数部分记为0。如果该整数所占的空间超过了浮点类型的容量,精度可能有损失。
当我们赋给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。例如,8比特大小的unsigned char可以表示0至255区间内的值,如果我们赋了一个区间以外的值,则实际的结果是该值对256取模后所得的余数。因此,把-1赋给8比特大小的unsigned char所得的结果是255。
当我们赋给带符号类型一个超出它表示范围的值时,结果是未定义的(undefined)。此时,程序可能继续工作、可能崩溃,也可能生成垃圾数据。

4.变量

4.1 命名规则:字母+数字+下划线(必须以字母或者下划线开头)
4.2 局部变量会覆盖同名的全局变量
4.3 声明:规定变量的类型和名字(在变量名前添加extern可声明变量,如果显式初始化即为定义)
4.5 定义:负责创建与名字关联的实体,并申请存储空间和赋初始值
4.4 引用:它只是为存在的对象所起的另外一个名字。它不是一个对象,没有实际的地址,定义是必须初始化
4.5 指针:本身就是一个对象,允许指针之间的拷贝和赋值
4.6 const表示的不可改变的量,该变量必须初始化(可以在运行时初始化)
4.7 顶层/底层const:顶层const表示本身是常量(常量指针,声明时const必须放在指针符号*后面,即:*const ),底层const表示所指的对象是常量(指向常量的指针,如:int const *p_a = &num_a);执行拷贝操作时,拷入拷出对象必须具有相同的底层const资格,或能够强制转换
4.8 常量表达式:数据类型和初始值都需要是常量类型,值不会改变并在编译过程就能得到计算结果
4.9 constexpr变量:一定是常量,必须用常量表达式(字面值类型,包括算术类型、引用、指针)或constexpr函数(足够简单编译时可计算结果)初始化
4.10 类型说明符auto会忽略顶层const,保留底层const
4.11 指针、常量与类型别名:typedef char *pstring; const pstring cstr = 0;,与const char *cstr不等价,前者的cstr是指向char的常量指针,后者中cstr是指向常量char的指针

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值