关于const的用法

1. const修饰整型变量

我们知道,const是一个关键词,在编译的时候起效果。它所修饰的常变量是C语言常量中的一种。
首先通过例子来了解const的用法。

int main()
{
	const int num = 10;//int与const的位置可换
	num = 20;
	printf("%d\n", num);
	return 0;
}

这个时候,程序马上会报错,会提示:num必须是可修改的左值。因为在这段代码里,const修饰的是num,那就意味着num的值不能被修改。
那const修饰的常变量,都不能被修改吗?
我们来看这段代码:

int main()
{
	const int a = 10;
	int * p = &a;
	*p = 100;
	printf("%d", a);
	return 0;
}

我经过运行,得出这个运行结果为100,那也就是说,a虽然是被const修饰,但a的值却被改变了,很明显我们可以看出是通过指针p改变的。因此,我们可以得出一个结论:const修饰的常变量,不能被直接改变,但可以被间接改变。

2. const修饰指针变量

const 修饰指针变量有以下三种情况。

  • const 修饰指针指向的内容,则内容为不可变量。
const int *p = 8;
  • const 修饰指针,则指针为不可变量。
int a = 8;
int* const p = &a;
*p = 9; // 正确
int  b = 7;
p = &b; // 错误
  • const 修饰指针和指针指向的内容,则指针和指针指向的内容都为不可变量。(实际上是上面两种情况的合并)
int a = 8;
const int * const  p = &a;
  • 15
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值