您的位置:首页 > 编程语言 > C语言/C++

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

2017-11-13 09:33 288 查看

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的指针
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言