c++ const 用法

1. const 定义常量

必须立刻进行初始化

const int p = 10;

常量 p 有数据类型,因此可以进行更加严格的类型检查,占用存储单元,有地址,可以用指针指向它,但不能修改它。

它消除了 #define 的不安全性。

2. const 修饰指针变量

指向常量的指针

const char * name = “chen”;

声明一个名为 name 的指针变量,它指向一个字符型常量,不允许修改指针所指地址中的常量。

name[3] = 'a';   //非法

不允许改变指针所指的常量。

name = "hu";   //合法

可以改变指针所指的地址。

常指针

常指针就是把指针所指的地址声明为常量。

char * const name = "chen";
name[3] = 'a'; //合法

可以改变指针所指的数据。

name = "hu"; //非法

不能改变指针所指的地址。

指向常量的常指针

const char * const name = "chen";

都不能改变。

3. const 的引用

	const int ci = 1024;
	const int &r1 = ci; // 正确:ci 是 const 常量,r1 也是 const 常量
	r1 = 42;            // 错误:r1 是常量的引用,初始化就不能修改了
	int &r2 = ci;       // 错误:r2 是一个非常量的引用,指向一个常量对象 ci 是不合法的

4. 常量引用的绑定

    int i = 42;	
    const int &r1 = i;	// i 是一个整型变量,在绑定的时候转成 const int 型临时变量,然后 r1 绑定上
    const int &r2 = 42;
    const int &r3 = r1 * 2;
    int &r4 = r1 * 2;  	// 错误 r1 是 const int 而 r4 是 int 不匹配
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值