C与C++基础--const与基础数据类型

8 篇文章 0 订阅

C与C++基础–数组指针与指针数组
C与C++基础–结构体struct和typedef struct 区别
C与C++基础–函数
C与C++基础–内存管理

const 是 constant 的缩写,本意是不变的,不易改变的意思。在 C++ 中是用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数。

C++ const 允许指定一个语义约束,编译器会强制实施这个约束,允许程序员告诉编译器某值是保持不变的。如果在编程中确实有某个值保持不变,就应该明确使用const,这样可以获得编译器的帮助。

有时候看定义总是一头雾水,我们上图与代码来分析

变量+const变成常量

当我们定义一个变量x = 3的时候变量名是x,存储地址是&x ,存储内容是3.

int x = 3; 

在这里插入图片描述
当我们定义一个变量x = 3 前面加上const的时候就变成来一个常量,常量名是x,存储地址是&x ,存储内容是3.

const int x = 3; 

类似与 #define x = 3;

const与指针类型

const int *p = NULL;
int const *p = NULL;

这俩货是一个意思

const int * const p = NULL;
int const * const p = NULL;

这俩货也是一个意思

例子一:

int y = 4;
int x = 3;
const int *p = &x;
p = &y;//可以的
*p = 4;//错误的

结论: const int * p = &x;
const 修饰的是int这个值不能改变,但是指针p是可以改变的

例子二:

int y = 4;
int x = 3;
int *const p = &x;
p = &y;//错误的

结论:nt *const p = &x;
这里的const是修饰的指针p,指针p一旦被赋值就不能再修改。

例子三:

int y = 4;
int x = 3;
const int *const p = &x;
p = &y;//错误的
*p = 4;//也是错误的

结论:const int *const p = &x;
这里const修饰来指针也修饰了int,这里一旦被赋值,指针不能变,*p也不能变

const 与引用

例子一

int x  = 3;
const int &y = x;
x = 20;
//y = 20; 错误的

一下关于const的写法:

const int x = 3; x = 5;  ❌

int x = 3; const int y = x; y = 5; ❌

int x = 3; const int *y = &x; *y = 5; ❌

int x =3,z=4; int * const y = &x; y = &z;❌

const int x = 3; const int &y =x; y =5;❌

const int x = 3; int * y = &x; ❌ //这个为什么错呢 因为前面不可变,后面可变所以又风险。

int x = 3; const int 8y = &x; //这个与上面对比这个是对的,前面可变,后面不可变是可以的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值