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

  • 43
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值