C语言:变量的作用域和生命周期详解

 更新时间:2021年08月31日 14:48:38   作者:慕雪华年  
这篇文章主要介绍了C++作用域与生命周期的相关资料,帮助大家更好的理解和学习c++,感兴趣的朋友可以了解下,希望能够给你带来帮助

1.全局变量和局部变量

定义在代码块外部的是全局变量

定义在代码块内部的是局部变量

什么是代码块?

//这是代码快外部
int main()
{
//这是代码块内部
}

实际上用int main来演示是不太对的,实际使用的时候我们定义变量是在int main内部定义的

下面这个例子更加清晰明了

int main()
{
	int i = 0;//这是代码块外部-i全局变量
	for(i=0;i<10;i++)
	{//代码块开始
		int j=0;//这是代码块内部-j局部变量
        for(j=0;j<10;j++)
	}//代码块结束
}

需要注意的是:

同一个变量a可以在全局,局部变量中间同时使用,局部变量优先

这里是指同时存在,同时使用,但不能同时定义

在局部的代码块中重新定义一个全局变量是错误的

下面这种形式就是 同时使用一个变量

int main()
{
    int sz = 8;
	int i = 0;
	if(i<sz)
	{
		i=1;
	}
}
  • 在我们定义变量的时候,变量的名字不能相同
  • 同时变量的名字也不应和库函数名相同

简单的说就是变量不要重复,也别和库函数冲突

2.变量的作用域

变量的作用域->变量的生效区域

  • 局部变量只在它自己的代码块中生效
  • 全局变量的作用域是整个代码

注:在VS中全局变量的作用域是整个工程

作用域的规定了变量生效区域

如果你在局部变量的代码块外部使用这个局部变量

这样是无效的,无法使用

2-1.声明外部变量的方法

在vs中全局变量的作用域是整个工程

但是如果源文件不同,我们需要打一串声明来应用工程文件中另外一个源文件的全局变量

extern int a

以下是声名变量和定义变量的代码示例

  extern int a;//声明全局变量a
  int a; //定义全局变量a
  extern int a =0 ;//定义全局变量a 并给初始值
  int a =0;//定义全局变量a,并给初始值

3.变量的生命周期

生命周期这个概念和作用域十分相似

  • 局部变量的生命周期从进入"{“开始,离开”}"结束
  • 全局变量的生命周期是整个程序(VS项目)

4. 局部变量&自动变量

局部变量又称自动变量

auto int a = 0;

实际使用的时候我们一般都是省略auto的

总结

本片文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • C语言实现个税计算器

    C语言实现个税计算器

    这篇文章主要为大家详细介绍了C语言实现个税计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • 深度剖析C语言结构体

    深度剖析C语言结构体

    今天小编就为大家分享一篇关于深度剖析C语言结构体,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • 代码讲解C++继承和派生

    代码讲解C++继承和派生

    在本文中我们通过实例代码给大家讲解下C++继承和派生相关知识点,需要的朋友们学习下。
    2019-02-02
  • Opencv基于文字检测去图片水印的实现示例

    Opencv基于文字检测去图片水印的实现示例

    去水印是个麻烦事,本文就来介绍一种方法Opencv基于文字检测去图片水印的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2023-09-09
  • 超详细讲解C++的三种函数传递方式

    超详细讲解C++的三种函数传递方式

    这个文章我将把我学习的有关函数传递形式的知识做个总结,相信很多刚入门的同学看到许多文章五花八门的形参会感到头疼,但本质上无非就是我要说的三种传递形式,快来跟我一起学习吧
    2022-05-05
  • Vscode Remote Development远程开发调试的实现思路

    Vscode Remote Development远程开发调试的实现思路

    这篇文章主要介绍了Vscode Remote Development远程开发调试的相关资料,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • CMake自动管理C/C++项目的实现

    CMake自动管理C/C++项目的实现

    CMake是一个强大的构建系统,用于跨平台管理C/C++项目的编译过程,本文主要介绍了CMake自动管理C/C++项目的实现,具有一定的参考价值,感兴趣的可以了解一下
    2025-02-02
  • 一篇文章带你了解C++ static的作用,全局变量和局部变量的区别

    一篇文章带你了解C++ static的作用,全局变量和局部变量的区别

    这篇文章介绍了C++ static的作用,全局变量和局部变量的区别,需要的朋友可以过来参考下,希望能够给你带来帮助
    2021-09-09
  • C语言中查找字符在字符串中出现的位置的方法

    C语言中查找字符在字符串中出现的位置的方法

    这篇文章主要介绍了C语言中查找字符在字符串中出现的位置的方法,分别是strchr()函数和strrchr()函数的使用,需要的朋友可以参考下
    2015-08-08
  • 一篇文章教你用C语言模拟实现字符串函数

    一篇文章教你用C语言模拟实现字符串函数

    这篇文章主要介绍了C语言模拟实现字符串函数,开发程序的时候经常使用到一些字符串函数,例如求字符串长度,拷贝字符串……,需要的朋友可以参考下
    2021-09-09

最新评论