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

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

前言

本篇文章将带大家了解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;
}

运行结果:

image.png

看到这里大家可能都会觉得很奇怪了,不是说const修饰的变量叫常量吗?那为什么还可以进行修改呢,其实const修饰的变量不能够叫做常量。

const修饰变量的性质

1.const修饰的变量只是只读的,并不是说他就是一个常量,所以是可以进行修改的。

2.const在编译器有用,在程序执行时无用。

3.const修饰的变量并不是真正的常量,他只是说onst修饰的变量不能出现在左边。


二、volatile

volatile这个属性大部分人应该都是没有听过的,因为volatile是不常用的属性。

但是在嵌入式开发中volatile这个属性还是比较有用的。

volatile的作用:

1.volatile告诉编译器每次都去内存中取数据,假如没有volatile的修饰的话编译器会做一些你不想要的优化。

2.volatile你可以理解为是多变的意思,就是告诉编译器这个变量是很容易发生变化的不能随便的帮我去优化他。


总结

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


相关文章
|
5天前
|
存储 安全 编译器
『C语言进阶』const详解
『C语言进阶』const详解
|
5天前
|
安全 编译器 C语言
C语言中的const关键字
C语言中的const关键字
18 2
|
6月前
|
程序员 C语言
【C语言】如何写出好(易于调试)的代码——assert和const的使用
【C语言】如何写出好(易于调试)的代码——assert和const的使用
24 0
|
6月前
|
存储 安全 编译器
13 C++ - const关键字(比较C语言)
13 C++ - const关键字(比较C语言)
46 0
|
5天前
|
存储 C语言
【C语言】const修饰指针的不同作用
【C语言】const修饰指针的不同作用
24 0
|
9月前
|
C语言
C语言指针--指针中的const
C语言指针--指针中的const
60 0
|
10月前
|
C语言
C语言中的const,冒牌货常量
C语言中的const,冒牌货常量
42 0
|
10月前
|
安全 编译器 C语言
C语言const关键字的用法总结
C语言const关键字的用法总结
56 0
|
7月前
|
C语言
const int *和int * const的区别【C语言/指针】
const int *和int * const的区别【C语言/指针】
31 0
|
7月前
|
存储 编译器 C语言
C语言进阶教程(const定义的变量真的不能被改变吗?)
C语言进阶教程(const定义的变量真的不能被改变吗?)
95 0