c++ const 总结

本文全面总结了C++中const的用法,包括在普通变量、函数、类以及STL中的应用。const可以修饰内置类型、指针、引用,确保数据在特定阶段不可变。在函数中,const用于限制参数和返回值的修改。在类中,const修饰成员变量和成员函数,强调不变性。在STL中,const用于常量迭代器。此外,文章还讨论了const与#define的区别,以及如何使用mutable关键字突破const的限定。
摘要由CSDN通过智能技术生成

前言

  • const 的作用很多,而且在被用作 常量指针 和 指针常量 的时候经常容易搞混,今天就来总结一下 所有 const 的用法;

一、const 在普通变量中的应用

1、修饰内置类型

i)左右皆可

  • const 修饰内置类型时,位置出现在 变量类型 的左边或者右边,其含义一样,代表被修饰的对象是一个常量,生命周期内不能被改变;
	const int maxn = 1024;
	int const maxm = 1024;
复制代码

ii)常量的非法修改

  • 直接通过赋值修改常量,编译器会报错;
  • 但是我们可以通过取地址的方式取得常量的地址,然后再强转成 int 指针,再在对应地址上去取值修改,然后在 watch 窗口观察,发现变量的值的确被修改了!!!但是用 printf 打印出来还是原来的值,所以说明这是一种未定义行为,编译器没想到你会干出这种事,写代码的时候应该坚决避免;
	const int maxn = 1024;
	*((int *)&maxn) = 1;
	printf("%d\n", maxn);      // 1024
复制代码

2、修饰指针类型

i)常量指针

  • 定义:是一个指针,指针变量指向常量;
  • 记忆方法:常量(const)在指针(*)左边,所以从左往右跟我读:常量指针!
  • 特性:指向的对象不可变;类型 和 const 的相对位置可以交换;
	const int cInt = 1024;
	const int* p = &cInt;
	*p = 43;                    // 错误行为,企图修改指针指向对象
复制代码

ii)指针常量

  • 定义:是一个常量,指针常量指向变量;
  • 记忆方法:指针(*)在常量(const)左边,所以从左往右跟我读:指针常量!
  • 特性:指针本身不可变;
	int iInt;
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值