请问在 C 语言中const与volatile是什么意思?

请问在 C 语言中const与volatile是什么意思?

1. 在C语言中,const的意思是“一个不能被改变的普通变量”,它总是占用存储空间而且它的名字是全局的。C编译器不能把const堪称一个编译器间的常量。所以在C中你可以这么写:
const int bufsize;//不赋值。
但不能这么写:
cosnt bufsize = 100;
char buf[bufsize]; //因为bufsize不是常量。
(但是在C++里,上面两种情况正好反过来。在C++里const修改的量表示常量,必须在初始化时赋值,并且可以作为数据的维数)

2. volatile修饰的数据,便一起不能对其进行优化,程序员不能改变他们的值,但是可以通过外部工具对其进行修改。
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-09-18
const 常量,运行时不可改变
volatile 编译器不要优化(多用于寄存器)

C语言const与volatile
告诉编译器不要去优化volatile修饰的代码,并且每次直接从数据源头读取数据,不允许将数据缓存到寄存器。注意:对volatile变量的操作不是原子性的。注意:volatile在c语言中和在java语言中的含义是不同的,本文重要阐述在c语言中的作用 volatile的用途 2.1.1 寄存器访问(每次都直接从寄存器地址获取数据)访...

在c语言中修饰符的用法
5、const:常量的定义,修饰只读的变量,但是通过某些方法也能改变常量。6、volatile:修饰不优化编译的关键字。 修饰变量值的修改。

C语言中有32个关键词,9种控制语句,34种运算符,分别是哪些?
const :与volatile合称“cv特性”,指定变量不可被当前线程\/进程改变(但有可能被系统或其他线程\/进程改变)volatile :与const合称“cv特性”,指定变量的值有可能会被系统或其他进程\/线程改变,强制编译器每次从内存中取得该变量的值 return :用在函数体中,返回特定值(或者是void值,即不返回值)co...

如何理解volatile和const
“const”含义是“请做为常量使用”,而并非“放心吧,那肯定是个常量”。“volatile”的含义是“请不要做没谱的优化,这个值可能变掉的”,而并非“你可以修改这个值”。因此,它们本来就不是矛盾的。const修饰的变量不允许这里修改不代表不允许别处修改,比如:int i = 5;const int* p = &i;p...

const volatile int i=0;此处定义的i是什么东西
1. 在C语言中,const的意思是“一个不能被改变的普通变量”,它总是占用存储空间而且它的名字是全局的。C编译器不能把const堪称一个编译器间的常量。所以在C中你可以这么写:const int bufsize;\/\/不赋值。但不能这么写:cosnt bufsize = 100;char buf[bufsize]; \/\/因为bufsize不是常量。(...

...static、register、const、volatile、ex...
C语言中的auto、static、register、const、volatile和extern是关键的存储类型和访问控制关键字,对程序性能和内存管理有重要影响。以下是它们的简要说明:1. auto:声明变量的生存期和存储位置,若无特殊声明,所有变量默认为auto。2.register:要求编译器将变量存储在CPU寄存器中,提高效率,但对32位编译器有...

C语言中的volatile是什么意思?怎么用?谢了
C语言中的"volatile"关键字具有特殊的含义,它标记为“易变”的,与常量(const)属性形成对比。被volatile修饰的变量,其值在编译期间可能会发生动态变化,这与变量的初始值或const属性不同。使用volatile的主要目的是告诉编译器,不要对这个变量的值进行优化,因为它的值可能在程序运行时由其他不可控因素...

C语言各类符号意义以及用法?
const :声明只读变量 unsigned:声明无符号类型变量或函数 signed:声明有符号类型变量或函数 extern:声明变量是在其他文件中声明 register:声明寄存器变量 static :声明静态变量 volatile:说明变量在程序执行中可被隐含地改变 void :声明函数无返回值或无参数,声明无类型指针 if:条件语句 else :条件...

C中的auto、static、register、extern、const和volitate
C语言中变量的存储类别包括auto、static、register、extern和const、volatile,它们分别定义了变量在内存中的存储方式和行为。自动存储的auto变量(如不声明static)在函数调用时动态分配空间,函数结束即释放。静态存储的static则保留函数调用时的值,可用于保存状态或限制作用域。register用于频繁使用的局部变量,...

求C语言中的32个关键字及其意思?
12、const 声明只读变量 13、unsigned 声明无符号类型变量或函数 14、signed 声明有符号类型变量或函数 15、extern 声明变量是在其他文件正声明 16、register 声明寄存器变量 17、static 声明静态变量 18、volatile 说明变量在程序执行中可被隐含地改变 19、void 声明函数无返回值...

相似回答