首页 > 编程语言 >C++——变量作用域

C++——变量作用域

时间:2022-11-02 15:35:27浏览次数:41  
标签:语句 10 变量 作用域 局部变量 C++ 全局变量 函数

全局变量
在全部函数(包括main函数)外面定义的是全局变量;
在整个程序生命周期内都是有效的,在定义位置之后的任意函数中都能访问(在定义位置之前的任何函数都不能访问)
全局变量在主程序退出时由系统收回内存空间。

局部变量
在函数和语句块内部定义的是局部变量;
函数内部是指在函数花括号里面
语句块内部如下所示(语句块内部通常是指大括号内部)

if(true)
{
    int xx = 19;
    cout<< "xx = " << xx << endl;
}
cout<< "xx = " << xx << endl;    // 此段报错,语句块外部不可访问

在函数或语句块内部的语句使用,在函数或语句块外部是不可用的。
局部变量在函数返回或语句块结束时由系统收回内存空间。
函数的参数是该函数的局部变量

静态局部变量
函数内部用static修饰的静态局部变量
用static修饰的局部变量生命周期和程序相同,并且只会被初始化一次。
其作用域为局部,当定义它的函数或语句块结束时,其作用域随之结束。
当程序想要使用全局变量的时候应该先考虑使用static(考虑到数据安全性)


运行结果:a1 = 10; a2 = 20; a3 = 10;


运行结果: a1 = 10; a2 = 10; a3 = 10;

注意事项
全局变量和静态局部变量自动初始化为0。
局部变量不会自动初始化,其值是不确定的,程序中应该有初始化局部变量的代码,否则编译可能会报错(不同的编译器不一样)。
局部变量和全局变量的名称可以相同,在某函数或语句块内部,如果局部变量名与全局变量名相同,就会屏蔽全局变量而使用局部变量,如果想使用全局变量,可以在变量名前加两个冒号(::)。
for循环初始化语句中定义的变量的作用域是for语句块。

仅做学习笔记,非原创,详情请见B站码农论坛

标签:语句,10,变量,作用域,局部变量,C++,全局变量,函数
From: https://www.cnblogs.com/dh2021/p/16851135.html

相关文章

  • C/C++ Qt 数据库与Chart实现历史数据展示
    在前面的博文中具体介绍了QChart组件是如何绘制各种通用的二维图形的,本章内容将继续延申一个新的知识点,通过数据库存储某一段时间节点数据的走向,当用户通过编辑框提交查询记......
  • 1-2 变量与递归函数
    变量作用域(全局变量和局部变量)变量变量起作用的范围称为变量的作用域,不同作用域内同名变量之间互不影响。变量分为:全局变量、局部变量。全局变量1.在函数和类定义之外......
  • shell语法2-默认变量、数组
    一:文件参数变量1、在执行shell脚本时,可以向脚本传递参数。$1是第一个参数,$2是第二个参数,以此类推。特殊的,$0是文件名(包含路径)#!/bin/bashecho"文件名:"$0echo"第一个参......
  • shell语法1-概论、注释、变量、字符串
    如果感觉有点忘了或者有点懵,敲出来测试测试就好了一:概论Linux系统中一般默认使用bash,文件开头需要写#!/bin/bash,指明bash为脚本解释器chmod+xfilename:使脚本具有可执......
  • <六>理解C++ new delete
    new和malloc区别?delete和free区别?malloc和free是C语言的库函数new和delete叫做运算符malloc是否开辟成功是通过返回值和空指针比对判断.和new开辟失败会抛出异常.bad_......
  • 000003 变量类型
    <?phpheader('Content-Type:text/html;charset=utf-8');include'./assets/php/head.php';//类型/***Boolean布尔类型*Integer整型*Float浮点型*Stri......
  • C++的前置声明
    C++的前置声明C++前置声明,这玩意看起是不是超级简单?我们来看几个问题:模板怎么前置声明typedef怎么前置声明模板的typedef怎么前置声明是不是还是比较头疼的......
  • QML实例化C++的类
    [网页](https://blog.csdn.net/baidu_33850454/article/details/81907857?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166731863916782429784725%2522%252C......
  • 第二章 变量和简单数据类型
    第二章变量和简单数据类型1.变量1.1变量的命名和使用变量名只能包含字母、数字和下划线(eg.message_1)变量名不能包含空格,只能用下划线来分隔其中的单词(eg.greet......
  • Javascript笔记 - JS中的变量
    变量目录变量1.变量基础2.强制类型转换3.关系运算1.变量基础JS是一门弱类型语言,这意味变量的类型不是固定的,变量可以随时从一种类型转换为另一种类型vari=1;......