c++命名空间 为了区分不同库中相同名称的函数、类、变量等
命名空间的定义使用关键字 namespace,后跟命名空间的名称,如下所示:
namespace namespace_name {
// 代码声明
}
为了调用带有命名空间的函数或变量,需要在前面加上命名空间的名称,如下所示:
name::code; // code 可以是变量或函数,前面是命名空间名
可以使用 using 命名空间名字 来使用该命名空间 之后在主函数中的就是该命名空间下的
命名空间的嵌套
namespace A {
// 代码声明
namespace B {
// 代码声明
}
}
如果想使用 B空间
使用如下命令 using namespace A::B;
全局变量:
全局变量(Global variables)是编程术语中的一种,源自于变量之分。(变量分为局部与全局。)
全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。
一个局部变量在被其它对象引用时,会是一个空值。但全局变量却不会出现这种情况。
局部变量:
局部变量(Local variables)指在程序中只在特定过程或函数中可以访问的变量。局部变量又可称之为内部变量
由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。
局部变量是相对于全局变量而言的。
二者区别所在:
作用域不同:
全局变量的作用域为整个程序,而局部变量的作用域为当前函数或循环等
内存存储方式不同:
全局变量存储在全局数据区中,局部变量存储在栈区
生命期不同:
全局变量的生命期和主程序一样,随程序的销毁而销毁,局部变量在函数内部或循环内部,随函数的退出或循环退出就不存在了
使用方式不同:
全局变量在声明后程序的各个部分都可以用到,但是局部变量只能在局部使用。函数内部会优先使用局部变量再使用全局变量
(注:局部变量不能赋值为同名全局变量的值。)
当局部变量和全局变量同时存在的时候,优先引用局部变量,而不去引用全局变量。
#include<iostream>//输入输出流,不加 .h using namespace std;//打开一个std(标准)命名空间 //使用一个命名空间 //1. using namespace 命名空间名,注意和其他命名空间冲突问题 //using namespace ?? ??就是优先使用的作用域 //2. 手动指定命名空间 namespace AA{ int a=5; void show(){ cout<<"AA.show()"<<endl; } int c=40; }; //作用域:成员能使用的一个范围 namespace BB{ int a=10; void show(){ cout<<"BB.show()"<<endl; } }; namespace CC { namespace BB { int a = 10; void show() { cout << "B2.show()" << endl; } }; }; //int a = 20;//全局变量 using namespace AA; int main(){ //int a = 200; // ::作用域运算符,::未指定任何作用域代表使用全局作用域 cout<<a<<endl;//20 cout<<BB::a<<endl;//10 cout<<AA::a<<endl;//5 AA::show(); BB::show(); CC::BB::show(); cout << a << endl; system("pause"); return 0; }
标签:11,局部变量,函数,2023.03,namespace,空间,命名,全局变量 From: https://www.cnblogs.com/hualuoyumufeng/p/17205462.html