自学内容网 自学内容网

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放在指针类型前和后 


原文地址:https://blog.csdn.net/weixin_55341642/article/details/140388535

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!