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

C++ - const常量与指针和引用之间的关系

2016-11-15 23:36 393 查看

const常量

1、const常量必须在定义的时候初始化,且不能修改。

2、const常量的默认类型为int类型。

3、#define是一个预处理器编译指令。该编译指令告诉预处理器,在程序中来查找并替换,修改后的程序将在这些变量的值替换后被编译。#define采用宏代换方式进行常量的处理,不具有类型检查机制,存在不安全性。

const与指针



const对象的地址只能赋给指向const对象的指针;

指向const对象的指针可以被赋予一个非const对象的地址。

int x = 1;
const int y = 2;
int *p1;
const int *p2;
p1 = &y;        //wrong
p2 = &x;    //right


const与引用

在定义引用时,可以用const进行限制,使它成为不允许被修改的常量引用。const引用可以用常量初始化,但非const引用不能用常量初始化。

const int &ir = 10;
int &jr = 10; //wrong


编译器在实现常量引用时生成了一个临时对象,然后让引用指向这个对象。但该对象对用户而言,是隐藏的,不能访问。例如上述的语句会转化为:

int temp = 10;
const int &ir = temp;


temp将保持到引用的生命期结束。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  const 指针 引用