const关键字

目录

const修饰变量

const修饰指针变量 

const放在指针类型之前

const放在指针类型之后

小结 


const修饰变量

const 修饰 int类型 变量a 后,此时的 变量a 就具有长属性,就不能被赋值为其他的值

变量a的地址 存储到 指针变量pa 中,通过 指针变量pa解引用 改变 变量a 的值

但是加上 const 修饰就是为了不能改变 变量a 的值,所以要再用 const 修饰 指针变量pa

再次加上 const 修饰 指针变量pa 后,变量a 就不能被修改为其他的值 

由此我们可以引入概念:const 可以修饰 指针变量


const修饰指针变量 

const放在指针类型之前

代码演示:

#include<stdio.h>
int main()
{
	int x = 11;
	int y = 99;

	const int* px = &x;

	*px = 20;  //true or false?
	px = &y;   //true or false?
	
	return 0;
}

代码解析:

被const修饰后不能被改变的是:

const 放在 指针类型int* 之前时,修饰的是 *px,也就是修饰的是 指针变量px解引用 后所指向的 变量x的数据 不能被改变

被const修饰后能被改变的是:

可以改变 指针变量px本身,也就是可以改变 指针变量px所存放的地址

代码验证: 

*px = 20;  //true or false? 

px = &y;   //true or false? 


const放在指针类型之后

代码演示:

#include<stdio.h>
int main()
{
	int x = 11;
	int y = 99;

	int* const px = &x;

	*px = 20;  //true or false?
	px = &y;   //true or false?
	
	return 0;
}

代码解析:

被const修饰后不能被改变的是: 

const 放在 指针类型int* 之后时,修饰的是 px,也就是修饰的是 指针变量px 所存储的 变量x的地址 不能被改变

被const修饰后能被改变的是:

可以改变 指针变量指向的内容,也就是可以改变 指针变量px解引用 后所指向的 变量x的数据

代码验证:

*px = 20;  //true or false? 

px = &y;   //true or false?


小结 

想要 指针变量所指向的内容不被改变 时:const放在指针类型之前

想要 指针变量所存储的地址不被改变 时:const放在指针类型之后 

想要 指针变量所指向的内容 和 指针变量所存储的地址 不被改变 时:const放在指针类型前和后 

相关推荐

  1. c++关键字const

    2024-07-13 04:04:05       49 阅读
  2. C++ const关键字

    2024-07-13 04:04:05       36 阅读
  3. C++ const 关键字详解

    2024-07-13 04:04:05       27 阅读
  4. C++的关键字const

    2024-07-13 04:04:05       21 阅读
  5. C++中const关键字详解

    2024-07-13 04:04:05       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 04:04:05       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 04:04:05       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 04:04:05       57 阅读
  4. Python语言-面向对象

    2024-07-13 04:04:05       68 阅读

热门阅读

  1. HTTPS和HTTP有哪些区别

    2024-07-13 04:04:05       20 阅读
  2. Qt开发 | Qt创建线程 | Qt并发-QtConcurrent

    2024-07-13 04:04:05       15 阅读
  3. UI图标库推荐网站

    2024-07-13 04:04:05       20 阅读
  4. 从零开始学习cartographer源码之01.gflags与glog

    2024-07-13 04:04:05       15 阅读
  5. [NeetCode 150] Valid Sudoku

    2024-07-13 04:04:05       20 阅读
  6. C#中AsMemory方法

    2024-07-13 04:04:05       22 阅读
  7. js ES6 part3

    2024-07-13 04:04:05       24 阅读