多多重复,百炼成钢!!!
系列文章目录
既然都要学c++了哇,那必然要先学会写哈喽world!!!
#include<iostream>
int main()
{
std::cout << "hello world" << std::endl;
return 0;
}
目录
一、搜索变量原则
1.局部优先原则-先在局部域里找变量,没找到再去全局域里面找
有局部变量:
没有局部变量则去全局里面找:
有特殊情况:当要操作的变量不是局部变量也不是全局变量的时候,我们知道头文件预编译的时候会展开,rand变量会在<stdlib.h>头文件里,所以我们得知在作用域里找变量时先在局部域里面找,没找到则是在全局域从上往下找,若都没有则报错!
另:
1.局部变量创建在栈帧上-函数调用要创建栈帧,调用完要销毁栈帧,之后局部变量找不到;
2.全局变量创建在静态区上;
3.malloc的变量创建在堆上!
二、区作用限定符 ::
1.若我们定义了局部变量,但是我们想要操作全局变量时,我们可以用到::(区作用限定符)
在变量名前加::
2.当我们指定要命名空间时可用
三、命名空间域namespace
1.不影响变量生命周期,只是限定域,编译查找规则
2.(命名空间域)::变量,当命名空间域为空格时-为全局域
3. 命名空间可以嵌套;同级的同一个命名域的内容可以被合并;不同级的相同命名域不会被合并
命名空间合并:(但是变量不能同名)
命名空间嵌套:
四、解除命名空间墙
1.部分展开:using xxx
指定展开-自己定义的时候避免跟常用命名重名
如:
using std ::cout;
using std::endl;
2.全部展开:using namespace xxx
如:
using namespace std