【C++开发-0.1】有关于const关键字

1.修饰符号常量:

#define MONTHS 12;
const int Months = 12; //推荐使用

示例中常量Months被初始化后,编译器将不再允许修改该常量的值。

相比于预处理命令优点:

(1) .明确指定数据类型。

(2) .可以将定义限制在特定函数或文件中(作用域规则)

(3) .可以用于更复杂的类型,比如vector、struct

2.修饰指针:

①指针指向常量对象(无法通过指针改变对象的值)

int age = 100;
const int *p = &age;
int const *p = &age;

在以上代码中无法通过(*p)改变age的值,但可以通过age本身进行修改。

*p++;  //invalid
age++; //available

②常量指针(指针指向不允许改变,但可以改变对象的值)

int age = 3;
int weight = 62;
int* const p = &age;
std::cout<<++(*p)<<std::endl;


p = &weight; //invalid

输出为3;

3.修饰引用:

常用于函数参数传递(该函数的目的只是传递使用参数的值)

int age = 3;
int weight = 62;

int getSomeone(const int& age,const int& weight);

优点:

   ①使用const可以避免无意中修改数据(实参)。

   ②使用const能够处理const和非const实参,否则只能接受非const数据。

   ③使用const能够使函数正确生成并使用临时变量。

注:临时变量:

long age = 3;
long weight = 64;

void getSomeone(int& age,int& weight);

getSomeone(age,weight);

实例中getSomeone函数接收到两个long类型实参时,编译器将创建两个临时int变量初始化为3,62,并对临时变量内容进行修改,而实参age、weight则保持不变(现在C++已经禁止创建临时变量)

但在只使用传递的值的函数中,使用const能够生成临时变量处理类型不匹配,确保原始数据不被修改。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值