Cpp Primer 学习笔记 第2章

编号

说明

1

基本内置类型:

 

(1)算术类型 (char/int/bool/float/double/……)

signed/unsigned

类型转换

当算术表达式中既有int值又有uint值时,int值转换为uint值

字面值常量

(2)空类型(void)

2

变量

 

初始值

列表初始化

int x = 0;

int x = {0};

int x{0};

int x(0);

以上4种都是正确的

默认初始化

关于内置类型变量,定义于任何函数体之外的变量被初始化为0,函数体内部是不被初始化的

绝大多数类支持无需显式初始化而定义对象

分离式编译

声明

extern int i; //仅声明

int j; //声明+定义

extern int k = 1; // 定义

标识符

字母、数字、下划线

大小写敏感

用户自定义标识符不能出现连续两个下划线,也不能以下划线紧连大写字母开头

定义于函数体外的标识符不能以下划线开头

3

名字的作用域

 

多数以{}分割

嵌套作用域

4

复合类型

 

比如:指针,引用

 

5

引用

 

左值引用:常见

右值引用:C++11引入

 

引用必须初始化

引用即别名

一旦定义引用,就不能再绑定到其他对象

6

指针

 

指针存放对象地址,初始化时使用取地址符&

空指针nullptr

void*指针,可用于存放任意对象的地址

7

复合类型声明

 

int i = 1024, *p = &i, &r = i;

int* p1, p2; // p1是指针,p2是int型

8

指向指针的指针 **

指向指针的指针的指针 ***

9

指向指针的引用合法

指向引用的指针不合法

int i = 42;

int *p;

int *&r = p;

r = &i;

*r = 0;

10

const限定符

const对象一旦创建,其值不能改变

const int i = get_size(); // 运行时初始化

const int j = 42; // 编译时初始化

 

默认情况下,const仅在文件内有效

 

const的引用

const int a = 1;

const int &b = a; // 合法

b = 2; // 不合法

int &c = a; // 不合法

 

临时量

11

指针和const

 

指向常量的指针不能用于改变其所指对象的值

12

const指针

int a=0;

int *const b = &a; // b一直指向a

const double c = 3.14;

const double *const d = &c; // d是一个指向常量对象的常量指针

13

顶层const

表示指针本身是个常量

底层const

表示指针所指向的对象是个常量

14

constexpr

 

指针和constexpr

仅对指针有效

15

处理类型

 

类型别名

typedef a b;

using a = b;

16

auto

17

decltype

decltype的表达式如果是加上括号的变量,结果将是引用

decltype((i)) d; // 错误,d是int&,必须初始化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值