前言
本篇文章将带大家了解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有了一个新的了解了。