C语言中你不知道的const和volatile

举报
yd_274589494 发表于 2023/07/26 12:14:00 2023/07/26
【摘要】 @TOC 前言本篇文章将带大家了解const和volatile,平时大家应该都比较少使用这两个变量修饰符,今天我给大家详细的介绍一下这两个修饰符的具体用法。 一、const很多人都认为const修饰的变量叫常量,那什么叫常量?常量就是不能够被修改的变量,下面就修改一下const修饰的变量。#include <stdio.h>int main(void){ const int a = 5; p...

@TOC


前言

本篇文章将带大家了解const和volatile,平时大家应该都比较少使用这两个变量修饰符,今天我给大家详细的介绍一下这两个修饰符的具体用法。

一、const

很多人都认为const修饰的变量叫常量,那什么叫常量?
常量就是不能够被修改的变量,下面就修改一下const修饰的变量。

#include <stdio.h>

int main(void)
{
	const int a = 5;
	printf("%d\n", a);
	int* p = &a;
	*p = 6;
	printf("%d\n", a);
	
	return 0;
}

运行结果:
在这里插入图片描述
看到这里大家可能都会觉得很奇怪了,不是说const修饰的变量叫常量吗?那为什么还可以进行修改呢,其实const修饰的变量不能够叫做常量。
const修饰变量的性质
1.const修饰的变量只是只读的,并不是说他就是一个常量,所以是可以进行修改的。
2.const在编译器有用,在程序执行时无用。
3.const修饰的变量并不是真正的常量,他只是说onst修饰的变量不能出现在左边。

二、volatile

volatile这个属性大部分人应该都是没有听过的,因为volatile是不常用的属性。
但是在嵌入式开发中volatile这个属性还是比较有用的。
volatile的作用:
1.volatile告诉编译器每次都去内存中取数据,假如没有volatile的修饰的话编译器会做一些你不想要的优化。
2.volatile你可以理解为是多变的意思,就是告诉编译器这个变量是很容易发生变化的不能随便的帮我去优化他。

总结

通过上面的这些大家应该对const和volatile有了一个新的了解了。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。