const修饰详解

简介: const修饰详解

我们写出以下代码


int main()
{
  int num = 10;
  num = 20;
  printf("%d", num);
  return 0;
}


运行结果如下

49517c0e589644ceaea6d08a6c376756.png


我们发现num的值是可以被修改的


但是我现在不想要num的值被修改  我应该怎么做呢?


我们说 可以在num前面加上一个const修饰 这样它就具有了常属性


(关于常量的四种表示形式大家可以参考我的这篇博客常量的四种表示形式)


我们在修改试试


80388a54973847c1a849b7920363d5ed.png


我们会发现程序开始报错了 因为这个时候的num已经具有了常属性


那么有没有什么方法可以修改num的值呢? 答案是有的  


836a2fffa5b2450fb08ae1be04d3a902.png


我们使用一个指针来修改就可以了


那么在指针勉强能不能使用const修饰呢?


答案是可以 而且修饰的范围不同效果作用也不同  


1 当const放在  *  左边的时候


fb49098db0124e3280382d4ac6c2936e.png


就表示*p指向的内容不能修改


但是指针变量本身可以修改


如下图  


3c5ee09ec8554e24940d5a2abd8c84a1.png


但是还有一点要注意的是


竟然指针p指向了ret 但是它仍然不能修改ret的值


c2c9942762284fc88aad0c34270d70df.png



2. 当const放在  *  右边的时候


c94de0f5058a470187830a28325551bb.png


我们仍然可以使用解引用p来修改num的值


但是却不能让p指向其他的地址


这就是const放在*前后的区别


以上就是本篇博客的全部内容啦 由于博主才疏学浅 所以难免会出现纰漏 希望大佬们看到错误之后能够


不吝赐教 在评论区或者私信指正 博主一定及时修正


那么大家下期再见咯


相关文章
|
5天前
|
数据安全/隐私保护 C++
C++ const 限定符的全面介绍(二)
C++ const 限定符的全面介绍(二)
54 0
|
5天前
|
C++
C++ const 限定符的全面介绍(一)
C++ const 限定符的全面介绍(一)
45 0
|
5天前
|
编译器 C++
|
5天前
|
编译器 C++
在 C++ 中const 成员函数的运用
在 C++ 中const 成员函数的运用
|
7月前
|
编译器 C语言 C++
const修饰的究竟是常量还是变量?
const修饰的究竟是常量还是变量?
54 0
|
5天前
|
C++
C++类中的const使用
C++类中的const使用
|
5天前
|
C++
c++中const修饰成员函数的问题
问题引入: 看下面这一段代码:
30 0
|
5月前
|
编译器 C++
const修饰的变量通过指针修改的问题
const修饰的变量通过指针修改的问题
57 0
|
6月前
趣味讲解const修饰指针变量
趣味讲解const修饰指针变量
29 0
|
9月前
|
C++
C++中的const成员变量和成员函数
在类中,如果你不希望某些数据被修改,可以使用const关键字加以限定。const 可以用来修饰成员变量和成员函数。 const成员变量 const 成员变量的用法和普通 const 变量的用法相似,只需要在声明时加上 const 关键字。初始化 const 成员变量只有一种方法,就是通过构造函数的初始化列表,这点在前面已经讲到了,请猛击《C++初始化列表》回顾。 const成员函数(常成员函数) const 成员函数可以使用类中的所有成员变量,但是不能修改它们的值,这种措施主要还是为了保护数据而设置的。const 成员函数也称为常成员函数。 我们通常将 get 函数设置为常成员函数。
42 1