这篇文章主要为大家介绍了C语言关键字之autoregister,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
一:auto
在学习关键字auto之前我们需要先了解两个概念:作用域和生命周期。
作用域
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用
的 而限定这个名字的可用性的代码范围就是这个名字的作用域。
局部变量的作用域:作用范围包含在代码块中的变量。在哪儿内定义,只在其范围内有效。
全局变量的作用域:在所有函数外定义的变量。整个项目中都有效。
我们用简单代码来理解一下:
int a = 20;
int main()
{
if (1)
{
int b = 10;
printf("%d", b);
}
return 0;
}这段代码中我们可以看到我们创建了两个变量,一个是全局变量 a ;一个是局部变量 b 。
根据作用域的定义我们可以知道:
全局变量a的作用域是整个工程:

局部变量b 的作用域只是包含在if括号内部:

为了我们更好的理解这个代码我们写几种代码,加深理解:
int a = 20;
int main()
{
if (1)
{
int b = 10;
}
printf("%d", a);
printf("%d", b);
return 0;
}这段代码我们发现报错

虽然我们b创建了,但是b是一个局部变量,作用域只在代码块内部( if 括号内部 ),不包括printf这一行,因此程序报错,访问不到b。
特殊的:
当局部变量和全局变量发生冲突时,局部变量优先。
这句话的意思是:当定义的变量名相同时,局部变量优先
int a = 20;
int main()
{
a = 10;
printf("%d", a);
return 0;
}我们打印就可发现:

当全局变量和局部变量发生冲突时,局部变量优先。为了避免这种问题的出现,尽量不要使用相同的变量名定义。
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
局部变量的生命周期是:进入局部变量所在范围开始 ----> 出了局部变量的范围结束
全局变量的生命周期是:整个程序的生命周期。生命周期main函数进入--->结束 整个程序的生命周期
为了更方便的理解:我们可以通俗的理解为,一个变量的存活时间,就是这个变量的生命周期。
例:古代某一皇帝从出生-->驾崩。从出生到驾崩这一段时间就是这位皇帝的生命周期。
// ***************生命周期***********
//int g = 100;//全局变量的生命周期:
// //生命周期main函数进入--->结束 整个程序的生命周期
//int main(){
// { // 局部变量生命周期:
// //进入局部变量所在范围开始 ----> 出了局部变量的范围结束
// int a = 100;
// printf("%d\n", a);
// }
//
//
// return 0;
/本文标题为:C语言关键字之auto register详解
基础教程推荐
- C语言 详解字符串基础 2023-03-27
- centos 7 vscode cmake 编译c++工程 2023-09-17
- 全面了解C语言 static 关键字 2023-03-26
- C语言编程C++旋转字符操作串示例详解 2022-11-20
- C++实现ETW进行进程变动监控详解 2023-05-15
- C语言实现宾馆管理系统课程设计 2023-03-13
- [c语言-函数]不定量参数 2023-09-08
- 带你深度走入C语言取整以及4种函数 2022-09-17
- [C语言]二叉搜索树 2023-09-07
- C++实战之二进制数据处理与封装 2023-05-29
