c++: using namespace std是什么意思?命名空间的由来和基本的输入输出

namespace的由来与作用

namespace是由于c的不足改进出来的

在c语言中,我们定义的变量不能与函数名重复.而在大型工程里,我们命名的变量可能和同事所写的函数名冲突.这个时候怎么解决呢?总不能去天台决斗吧.

image.png
namespace应运而生.命名空间相当于一堵墙,将库里面的所有函数保护起来,这样子变量的命名就不会与函数冲突.
因为编译器在默认情况下是不会去访问命名空间里面.编译器先对局部域搜索,再对全局域进行搜索.而using namespace std相当于把堵墙给拆了.编译器也就能够访问了

命名空间跟结构体有一点点类似,你要给这个空间起个名字.我们日常使用的std就是库里面一个命名空间的名字.

image.png
: :是预作用限定符.简单来说就是一把钥匙,暂时打开命名空间这堵墙,取出其中的一个参数rand.

命名空间的嵌套使用

命名空间是可以进行嵌套使用的,这样你在命名空间里面的多个函数的命名就不会冲突.
image.png
同名的多个命名空间会合并成一个命名空间

using namespace std 中的using是什么?

using相当于一个拆迁队,把命名空间std的这一堵墙全部拆毁.让std里面所有的参数暴露在全局空间中.using的使用很暴力,也很方便.但同样带来了危险.我们设置命名空间的目的就是怕我们命名的变量和函数名冲突.这下子又回到起点了. 所以在大型工程项目中不要把std直接展开.

using的使用要谨慎

在我们的日常使用中,为了方便,可以直接展开std.但是当各位看官都成为行业大牛,在大型工程中就不能展开std,防止命名冲突.
同时 std::cout的搜索规则是指定搜索.编译器会直接到std这个命名空间去找.
``

```#include<iostream>

using std::cout;
using std::endl;

int main()
{
	cout << "hello world" << endl;
	return 0;
}

**可以对std里面的几个常用的进行展开,这样又安全又方便.**
**<<是流插入,cout是输出,类似于printf,cout<<会自动识别类型.**
endl是end line的意思,相当于打一个换行符.

![image.png](https://img-blog.csdnimg.cn/img_convert/46519f85e8641a5551919aa51bb10077.png)
  • 14
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海的宇宙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值