前言
本篇文章将为大家介绍一些C语言中变量的属性。
一、什么是变量的属性
1.C语言中的变量可以有自己的属性
2.在定义变量的时候可以加上 属性 关键字
3.属性关键字代表变量有特殊的意义
示例:
int main(void) { auto int a; static int b; extern int m; register int i; return 0; }
二、auto属性
1.auto属性概念
1.auto属性是C语言中局部变量中默认的属性
2.使用auto修饰的变量保存在栈上
3.局部变量默认使用auto修饰
4.栈上保存的变量生命周期会随着栈的变化改变。
三、static属性
1.static属性概念
1.static修饰一个变量就说明这个变量是静态的
2.static修饰的局部变量存储在程序静态区
3.static修饰的全局变量作用域只是在声明的文件中
4.static修饰的函数作用域只是在声明的文件中
下面程序的运行结果是1,2,3,4
因为静态局部变量存储在程序静态区当函数退出时静态局部变量不会受到影响
#include <stdio.h> int fun(void) { static int count = 0; count++; return count; } int main(void) { printf("count = %d\n", fun()); printf("count = %d\n", fun()); printf("count = %d\n", fun()); printf("count = %d\n", fun()); return 0; }
四、register属性
register关键字指明将局部变量存储于寄存器中- register只是请求寄存器变量,但不一定请求成功
register变量的必须是CPU寄存器可以接受的值不能用&运算符获取register变量的地址
五、extern属性
1.extern用于声明“外部”定义的变量和函数
2.- extern变量在文件的其它地方分配空间
3.- extern函数在文件的其它地方定义
总结
变量都可以拥有自己的属性,当给变量加上不同的属性时,变量的意义也是不同的。