C语言关键字--- const volatile
来源:互联网 发布:阿里云市场分析 编辑:程序博客网 时间:2024/05/29 04:48
在C语言中const 修饰的变量是只读的(即 此变量不能作为左值),其本质还是变量.
const 修饰的变量会在内存占用空间.
本质上const 只对编译器有用,在程序运行时无用,那么我们在程序运行起来时还是可以通过指针来改变它的值的.
#include <stdio.h>int main(){const int a = 1;int* p = (int*)&a;printf("%d \n",a);*p = 3;printf("%d \n",a);return 0;}
[root@localhost C]# ./a.out 1 3 [root@localhost C]#
const 口诀:左数右指
当 const 出现在 * 号的左边时,指针指向的数据为常量.
当 const 出现在 * 号的右边时,指针本身为常量.
const int* p; // p可变,p指向的内容不可变;
int const* p; // p可变,p指向的内容不可变;
int* const p; // p不可变,p指向的内容可变;
const int* const p; // p和p指向的内容都不可变;
const 修饰函数参数表示在函数体内不希望改变参数的值.
const 修饰函数返回值表示返回值不可改变,多用于返回指针的情形.
const int* func(){static int count = 0;count++;return &count;}
volatile关键字 :
volatile 可理解为“编译器警告指示字”;
volatile 用于告诉编译器必须每次去内存中取变量值;
volatile 主要修饰可能被多个线程访问的变量;
volatile 也可以修饰可能被未知因素改变的变量;
编译器在编译的时候发现变量没有当成左值使用,因此会“聪明”的直接将obj替换成其初始化的值,而不去内存中获取.
可能在程序中断改变了值的话,必须加上 volatile 告诉编译器必须每次去内存中取变量值 .
- C语言关键字--- const volatile
- C语言关键字auto、static、register、const、volatile、extern
- 嵌入式c语言新手起步《const volatile关键字的认识》
- C语言中关键字auto、static、register、const、volatile、ex...
- C语言中关键字const、static、volatile的用法分析
- C语言关键字:static,const,inline,volatile与assert()等
- 解释一下C语言中的关键字const、volatile、static
- C语言之auto、static、register、const、volatile、extern关键字
- C语言关键字volatile
- C语言volatile关键字
- C语言volatile关键字
- C语言关键字volatile
- C语言volatile关键字
- C语言关键字volatile
- C语言volatile关键字
- C语言关键字volatile
- C语言关键字Volatile
- C语言volatile关键字
- linux下向yeelink添加数据点
- 搭建Struts2开发环境
- Linux ALSA声卡驱动之七:ASoC架构中的Codec
- RemObjects Data Abstract for Delphi - 6.0.61.1029 破解版,支持Delphi XE2
- eclipse svn插件安装下载
- C语言关键字--- const volatile
- Linux ALSA声卡驱动之八:ASoC架构中的Platform
- C/C++中枚举类型(enum)
- java知识点
- zoj1110
- DAPM之二:audio paths与dapm kcontrol
- LeetCode Construct Binary Tree from Inorder and Postorder Traversal
- 求链表的倒数第K个节点
- DAPM之一概述