#1 全局变量和局部变量:就近原则。
#2 双冒号 作用域运算符 ::全局作用域 可确定作用域
#3 命名空间 namespace 主要用途用来解决命名冲突的问题
#3-1 命名空间下可以放 函数、变量、结构体、类。
#3-2 命名空间必须定义在全局作用域下。
#3-3 命名空间可以嵌套。
#3-4 命名空间开放,可随时往原先命名空间添加内容。
// 在头文件中进行定义
namespace LOL
{
void cat();
}
namespace PPT
{
void cat();
}
// 在CPP文件中实现
// 在使用时,加作用域就好
void PPT::cat(){
cout<<"success"<<endl;
}
int main(){
PPT::cat();
}
#3-5 无名、匿名命名空间,相当于写了static int m_c
只能在当前文件内使用
#3-6 可以起别名
namespace veryLongName = p;//这两个都可以用
#4 using声明与编译
// using 声明 注意避免二义性
void test01()
{
int m_S = 10;
using namespace::m_S ;
// 此时程序即出现二义性
cout<<m_S <<endl;
}
void test02()
{
int m_S = 10;
using namespace PPT ; // 只是打开该命名空间,并没有声明使用
// 此时程序没有问题
cout<<m_S <<endl;
}
#5 const增强使用 不可修改,取地址系统内部会分配临时地址
#5-1 只要分配内存的,就可以改变其值
// 不可修改
const int m_B=20; // 收到保护,不可修改
void test07()
{
const int m_B=20;
// 这样仍然不可修改m_B的值,此时内存为m_B开辟临时空间,指针p指向的是临时的地址
int *p =(int*)&m_B;
}
#6 const增强使用 c++默认是内部连接,只有在当前文件夹可以访问