引用:
引用就是给一个已知的对象重新附了一个新的名字,在引用初始化的时候,程序把引用和他的初始值绑定在一起。
定义了一个引用之后,所有对其的操作都是对与其绑定的对象上进行的
因为引用不是对象,那么不能对引用直接赋值
指针:
指针首先是一个对象,,允许对指针赋值和拷贝,且在他的生命周期中可以指向不同的对象。
指针在定义的时候不需要赋初值,没有被初始化,则有一个不确定的值
const 限定符
:利用const限定符对类型加以限定,该类型的变量就成了常量,任何改变其值的操作都会引发错误
例如:const int bufsize=512; 则bufsize为一个常量
与非const类型的操作相比,const类型的对象能完成大部分的操作。主要限制是只能在const类型的对象不执行改变其内容的操作。也就是const类型的对象的常量特性只在其内容发生改变的时候起作用。
const的对象如何在多个文件中使用
在默认的状态下,const对象只在文件内有
解决办法是,对于const变量不管是声明还是定义,都加上extern关键字
//file_1.cc 在此处定义并初始化了bufsize,因为包含了赋值
extern const int bufsize = fcn();
//file_1.h 指明bufsize并不是本文件独有,他的定义在别处出现
extern const int bufsize;
局部变量和全局变量的访问
全局变量的作用域时全局,局部变量的作用域是局部,若全局和局部的变量名相同的话,局部变量的改变不会引起全局变量的改变
#include<iostream> int a=1; int main() { int a=10; std::cout << a << std::endl; std::cout << ::a << std::endl; return 0; }
对全局变量的访问可以采用一元作用域解析运算符 ::来访问