const修饰详解

发布于:2022-12-19 ⋅ 阅读:(157) ⋅ 点赞:(0)

我们写出以下代码

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

运行结果如下

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

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

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

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

我们在修改试试

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

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

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

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

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

1 当const放在  *  左边的时候

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

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

如下图  

 但是还有一点要注意的是 

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

 

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

 

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

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

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

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

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

那么大家下期再见咯

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到