自己做优惠劵网站赚钱吗,王烨,国家工商企业查询,手机网站登录模板C语言中定义变量的格式#xff1a; 存储类型 数据类型 变量名;C语言的存储类型#xff1a;常见的有const、static、extern、auto、register、volatile#xff1b;const关键字#xff1a;const关键字修饰变量时#xff0c;该变量表示是一个只读变量#xff0c;不能通过变量…C语言中定义变量的格式 存储类型 数据类型 变量名;C语言的存储类型常见的有const、static、extern、auto、register、volatileconst关键字const关键字修饰变量时该变量表示是一个只读变量不能通过变量名修改变量的值案例 const int m 20;int const n 30;m 30;//不可以赋值因为m是只读变量n 20;//不可以赋值因为n是只读变量const修饰指针三种情况1、指针的指向可以修改但是不能通过指针修改指向空间里面的内容案例 const int *p;int const *p;2、指针的指向不可以修改但是能通过指针修改指向空间里面的内容案例 int * const p;3、指针的指向不可以修改也不能通过指针修改指向空间里面的内容;案例 const int * const p;static关键字 static常用于修饰变量 static的作用 一、延长局部变量的生命周期 static修饰的静态局部变量只执行初始化1次使得局部变量的生命周期原本从离的最近的花括号结束在static修饰后延长至整个程序结束 二、限制作用域 1、static修饰的全局变量只能在本源文件中访问即便是extern外部声明也不可以 2、static修饰的函数只能在本源文件中调用 static 修饰的变量 其存放在全局数据区的静态变量区包括全局静态变量和局部静态变量都在全局数据区分配内存其在初始化时自动初始化为 0 特别注意 1、static修饰的局部变量在主函数执行之前就已经分配好了 2、在功能函数中static修饰的局部变量只是一个声明多次调用时也不会重新赋值 3、static修饰的局部变量仍是局部变量作用域还是离的最近的花括号 extern关键字 extern修饰的变量或者函数是在其他源文件中定义的即在一个源文件中若要使用其他源文件中所定义的变量或者函数需要使用extern关键字声明 auto关键字 除了全局变量和static的变量定义变量时省略存储类型的变量默认都是auto修饰的 register关键字 register修饰的是寄存器类型的变量被处理器执行的效率是最高的 CPU在取数据时优先级为寄存器 高速缓存cache 内存空间 由于中央处理器的寄存器的个数是有限的所以把所有的变量都定义成寄存器变量是不现实的 特别注意 register关键字修饰的变量是不能取地址的 volatile关键字 主要作用是防止编译器优化要求CPU每次取数据必须在内存中取 常见的使用场景 1、多线程访问同一个变量 2、寄存器处于中断的状态