服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C语言:变量的作用域和生命周期详解

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

2021-12-27 15:03慕雪华年 C/C++

这篇文章主要介绍了C++作用域与生命周期的相关资料,帮助大家更好的理解和学习c++,感兴趣的朋友可以了解下,希望能够给你带来帮助

1.全局变量和局部变量

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

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

什么是代码块?

?
1
2
3
4
5
//这是代码快外部
int main()
{
//这是代码块内部
}

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

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

?
1
2
3
4
5
6
7
8
9
int main()
{
    int i = 0;//这是代码块外部-i全局变量
    for(i=0;i<10;i++)
    {//代码块开始
        int j=0;//这是代码块内部-j局部变量
        for(j=0;j<10;j++)
    }//代码块结束
}

需要注意的是:

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

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

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

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

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

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

2.变量的作用域

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

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

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

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

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

这样是无效的,无法使用

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

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

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

?
1
extern int a

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

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

3.变量的生命周期

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

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

4. 局部变量&自动变量

局部变量又称自动变量

?
1
auto int a = 0;

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

总结

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

原文链接:https://blog.csdn.net/muxuen/article/details/119994969

延伸 · 阅读

精彩推荐
  • C/C++OpenCV实现拼接图像的简单方法

    OpenCV实现拼接图像的简单方法

    这篇文章主要为大家详细介绍了OpenCV实现拼接图像的简单方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    iteye_183805102021-07-29
  • C/C++c/c++内存分配大小实例讲解

    c/c++内存分配大小实例讲解

    在本篇文章里小编给大家整理了一篇关于c/c++内存分配大小实例讲解内容,有需要的朋友们可以跟着学习参考下。...

    jihite5172022-02-22
  • C/C++深入C++拷贝构造函数的总结详解

    深入C++拷贝构造函数的总结详解

    本篇文章是对C++中拷贝构造函数进行了总结与介绍。需要的朋友参考下...

    C++教程网5182020-11-30
  • C/C++C语言实现双人五子棋游戏

    C语言实现双人五子棋游戏

    这篇文章主要为大家详细介绍了C语言实现双人五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    两片空白7312021-11-12
  • C/C++C语言main函数的三种形式实例详解

    C语言main函数的三种形式实例详解

    这篇文章主要介绍了 C语言main函数的三种形式实例详解的相关资料,需要的朋友可以参考下...

    ieearth6912021-05-16
  • C/C++c/c++实现获取域名的IP地址

    c/c++实现获取域名的IP地址

    本文给大家汇总介绍了使用c/c++实现获取域名的IP地址的几种方法以及这些方法的核心函数gethostbyname的详细用法,非常的实用,有需要的小伙伴可以参考下...

    C++教程网10262021-03-16
  • C/C++使用C++制作简单的web服务器(续)

    使用C++制作简单的web服务器(续)

    本文承接上文《使用C++制作简单的web服务器》,把web服务器做的功能稍微强大些,主要增加的功能是从文件中读取网页并返回给客户端,而不是把网页代码...

    C++教程网5492021-02-22
  • C/C++关于C语言中E-R图的详解

    关于C语言中E-R图的详解

    今天小编就为大家分享一篇关于关于C语言中E-R图的详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看...

    Struggler095962021-07-12