【C++学习笔记】const修饰符

概念

const修饰符是C++用于替代define的一个关键字,即用于定义一个常量。

一般格式

const 数据类型标识符 常数名 = 常量值;
或
数据类型标识符 const 常数名 = 常量值;
例:
const int HUMAN = 1;

采用这种方式定义的常量是类型化的,它有地址,可以用指针指向这个值,但是不能修改它

说明:

1、const必须放在被修饰类型符和类型名前面

2、常量一但被建立,在程序任何地方都不能改!

3、数据类型是可选项,如果省略了,那么编译程序认为它是int类型。
例:

const int a =10;
等价于
const a =10;

4、const作用与#define相似,但它消除了#define的不安全性。
例:

#include"iostream.h"
main()
{
int a = 1;
#define T1 a+a
#define T2 T1-T1
cout<<"T2 is "<<T2<<endl;
return 0;}

这里输出的结果是T2 is 2 稍有不慎就会算错,所以用#define语句是不够安全的。如果用const代替这里的#define,就能避免#define这种反人类的算法。

5、const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。

6、函数参数也能用const说明,用于保证实参在该函数内部不被改动,大多数C++编译器能对具有const参数的函数进行更好的代码优化。

const与指针一起使用:

const定义的常数是有内存地址的,所以也会有指针。这里有三个易混的概念:“指向常量的指针”、“常指针”、“指向常量的常指针”

  • 指向常量的指针就是指那个指向const定义的常量所在地址的指针,比如const char* pc = “abcd”(注意*号的位置)
  • 常指针是指:把指针本身,而不是它指向的对象声明为常量。(常指针不一定指向常量)例:
    char*const pc =“abcd”;(注意*号位置)
    **(这时这个指针本身是一个常量,不能移动,但其指向地址内的值是可以改变的。)
  • 指向常量的常指针就是把二者结合起来,其指针不能变,指针指向的值也不能变:
    const char * const pc=“abcd”;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值