C++ Primer 读书笔记
定义与声明
定义负责创建实体,声明(extern)使名字为程序所知,变量可以声明多次。
int i; //声明+定义 extern int i ; //声明 entern int i=10 ; //定义
引用必须初始化,初始化时,程序将引用和初始值绑定在一起,可以理解为变量起来一个别名(并非对象),因此不能定义引用的引用。
int ival = 1024; int &refval = ival; int &refval2; //error
指针
指针与其指向的变量的类型要相同,初始化定义如下(初始化时注意变量前的&),访问指针所指向的对象时要使用解引用符(*),指针是一个对象
int ival = 1024; int *q ; //q是指向int型对象的指针 int *p = &ival; //p存放的是ival的地址(p是ival的指针) cout << *p << endl;
viod * 是一个特殊的指针类型,可以存放任意对象的地址,但是我们不知道他存放时什么类型的对象,所以能做的事情也比较有限(同别的指针比较,作为输入输出,赋值给另一个void*指针),不能直接操作void*所指向的变量。
int ival = 1024; int *pi = &ival ; int **pp = π //pp指向pi指针的指针 int *&rp = p ; //rp是指针pi的引用 (int* &p = p )
思考:给定指针p,判断他是否指向一个合法对象。
-----------------------------采用try,catch结构,把if(p)放在try块中。
const限定符
const变量初始化时必须赋值,并且赋值后不能更改。
const可以被引用,但是引用必须同样是const,且不能修改他的值。(对const的引用被称为”常量引用”)<------------区分------------> 初始化const引用时,可以使用任意表达式,只要表达式可以转换成引用的类型。
默认情况下,const对象仅在文件内部有效,若想在多个文件共享const对象,需要在变量定义之前添加extern关键词
还有一种const变量,他的初始值不是常量表达式并且需要在文件之间共享(定义一个const在多文件使用)不管声明还是定义都需要添加extern,头文件的extern作用是指明变量bufsize并非本文件独有,他定义在别处。
//file1.cc 定义并且初始化 extern const int bufsize = func(); //file1.h头文件 extern const int bufsize ;
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步