时间:2021-05-19
C++ 变量作用域
作用域是程序的一个区域,一般来说有三个地方可以定义变量:
我们将在后续的章节中学习什么是函数和参数。本章我们先来讲解什么是局部变量和全局变量。
局部变量
在函数或一个代码块内部声明的变量,称为局部变量。它们只能被函数内部或者代码块内部的语句使用。下面的实例使用了局部变量:
#include <iostream>using namespace std; int main (){ // 局部变量声明 int a, b; int c; // 实际初始化 a = 10; b = 20; c = a + b; cout << c; return 0;}全局变量
在所有函数外部定义的变量(通常是在程序的头部),称为全局变量。全局变量的值在程序的整个生命周期内都是有效的。
全局变量可以被任何函数访问。也就是说,全局变量一旦声明,在整个程序中都是可用的。下面的实例使用了全局变量和局部变量:
#include <iostream>using namespace std; // 全局变量声明int g; int main (){ // 局部变量声明 int a, b; // 实际初始化 a = 10; b = 20; g = a + b; cout << g; return 0;}在程序中,局部变量和全局变量的名称可以相同,但是在函数内,局部变量的值会覆盖全局变量的值。下面是一个实例:
#include <iostream>using namespace std; // 全局变量声明int g = 20; int main (){ // 局部变量声明 int g = 10; cout << g; return 0;}当上面的代码被编译和执行时,它会产生下列结果:
10
初始化局部变量和全局变量
当局部变量被定义时,系统不会对其初始化,您必须自行对其初始化。定义全局变量时,系统会自动初始化为下列值:
数据类型 初始化默认值 int 0 char '\0' float 0 double 0 pointer NULL
正确地初始化变量是一个良好的编程习惯,否则有时候程序可能会产生意想不到的结果。
在程序中,局部变量和全局变量的名称可以相同。
但是在函数内的局部变量与全局变量是两个独立的变量,互不影响。
下述代码中,全局变量定义了一个int g=99,局部变量定义了一个int g=10,由于这两个g所在的作用域不同,所以各自独立。
#include <iostream>using namespace std;// 全局变量声明int g = 99;// 函数声明int func();int main(){ // 局部变量声明 int g = 10; //cout << g; int kk = func(); cout << kk; return 0;}// 函数定义int func(){ return g;}以上就是由浅入深学习C++变量作用域的详细内容,更多关于C++变量作用域的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
C++变量的存储类别(动态存储、静态存储、自动变量、寄存器变量、外部变量)动态存储方式与静态存储方式我们已经了解了变量的作用域。作用域是从空间的角度来分析的,分
C++中的双冒号::第一种,类作用域,用来标明类的变量、函数Human::setName(char*name);第二种,命名空间作用域,用来注明所使用的类、函数
变量的定义C语言中的变量都必须在作用域开始的位置定义!!C++中更强调语言的“实用性”,所有的变量都可以在需要使用时再定义。#inclu
大多数程序设计语言都提供了“作用域”(Scope)的概念。对于在作用域里定义的名字,作用域同时决定了它的“可见性”以及“存在时间”。在C,C++和Java里,作
1、Javascript变量作用域javascript中,变量主要分为局部变量和全局变量两种,对应的作用域也是局部作用域和全局作用域。1局部变量和作用域局部变量