C语言 const、static、volatile等关键字的作用

目录

前言

const

static

volatile

extern

总结


前言

 

C语言里面有许多关键字,本文结合我自己的了解简单讲讲几个常用关键字的作用。


 

const

问:const有什么用?

答:

  • const可以用来修饰变量,比如 const int a;那么变量a的值就会编译器强制保护,a的值无法被修改,此时变量a相当于一个常量
  • const 可以用来修饰指针,比如const int *p;此处,p指向的int型数据被const保护,所以无法通过指针去修改这个int型数据
  • 又比如int * const p;此时p被const保护,p本身无法被修改

static

问:static有什么用?

答:

  • static可以用来修饰全局变量,改变它的作用域;怎么理解?

 全局变量本来就是全局作用域,其他文件可以引用它(或者说其他文件可见),但是加上static之后它就变成了文件作用域,只有本文件可以引用它(只有本文件可见)。

  • static也可以用来修饰函数,作用同上
  • static还可以用来修饰局部变量,改变它的生命周期,怎么理解?

局部变量本来就是自动存储期,存放在栈内存,当它退出代码块作用域后就会被释放;现在加上static之后,它就变成了了静态数据,存放在静态数据区(.data段);当程序结束之后它才会被释放;而且,它只会初始化一次。

volatile

问:volatile有什么用?

答:

 volatile声明一个变量表示这个变量有可能会被意想不到地改变;所有它会告诉编译器:与这个变量有关的运算不要去做优化,每次使用这个变量的时候都要重新从内存中读取它的值,而不是直接使用寄存器里面的拷贝。

extern

问:extern有什么用?

答:

  • extern可以用来声明外部的变量或函数,如果这个变量或函数存在,那就可以引用它。
  • extern c可以用来在c++代码中使用c代码,一般放在头文件中,它会告诉编译器:被extern c修饰的这段c代码请按照c语言的方式进行编译。

总结


本文仅仅简单介绍了几个c语言常用关键字的作用,结合作者本人的理解随便说说。

posted @ 2022-05-05 16:29  李星云姬如雪  阅读(390)  评论(0编辑  收藏  举报