公司网站建设的请示,设计网站 常用,编程python适合多大孩子学,宝应县网络推广公司目录 C的由来#xff1a;
C语言的命名缺陷#xff1a;
什么是命名空间#xff1f;
命名空间的访问方式#xff1a;
1、指定访问
2、展开命名空间#xff08;慎用#xff09;
相关知识#xff1a; C的由来#xff1a;
C原来本质上是在C的基础上补充的语法#x…目录 C的由来
C语言的命名缺陷
什么是命名空间
命名空间的访问方式
1、指定访问
2、展开命名空间慎用
相关知识 C的由来
C原来本质上是在C的基础上补充的语法去补充C的缺陷 由此而引出了一系列的语法和新的东西 后来发展到一定的程度就自成体系 新晋成为一个新的语言 但是因为是从C语言的基础上中衍生出来的 所以就叫做C Plus Plus即C
C语言的命名缺陷
C有一个明显的缺陷就是命名的问题 什么命名问题
例如我们有一个头文件#includestdlib.h 其中有一个函数叫做rand 那么现在我们要定义一个函数函数名也叫做rand 此时就会出问题 为什么 因为C程序在运行之前要进行编译 也就是头文件会展开即把头文件的代码展开类似于拷贝到当前项目 那么头文件展开的代码中已经有了一个函数叫做rand 后面我们又定义了一个命名为rand 就会出现重定义的问题 同时不仅仅是这个场景下 再例如不同的程序员在写一个项目的时候有可能会写同一个函名。 这个时候就会出问题到底用谁的你改还是我改 那怎么办 那就是用命名空间
什么是命名空间 要理解命名空间首先要理解代码运行的机制 在代码运行之前首先会进行编译链接 首先是头文件展开 然后再到main函数 main函数内的变量和函数首先会到局部域去找 局部域找不到就会到全局域找 什么是域 全局域你暂时可以理解为当前项目下的所有代码空间 局部域相应的就是当下函数的作用域空间命名空间其实也是一个局部域 上面我们说过一个域可以定义同一个变量但是在不同的域却不可以定义会出现重定义的问题 所以如果要定义相同的变量名 就可以使用命名空间 命名空间就是一个域 在全局域中单独开出来的一个域内部封装你要定义的变量、结构体、函数 那么这个命名空间域就会独立于全局域、局部域之外 你要访问就可以指定访问 例如你在某个命名空间也定义了一个rand函数 要在mian函数调用rand函数 这个时候可以指定访问的是该命名空间的rand函数 而不是全局域中由头文件展开的那个rand函数 这样就解决了命名冲突的问题
命名空间解决的是命名冲突的问题什么冲突库和我们自定义命名的冲突
命名空间的访问方式 1、指定访问
namespace :: 域中的某值 2、展开命名空间慎用 注意因为命名空间是在全局域中圈出一块所以展开以后其范畴依旧属于全局域 在函数的调用中依旧要先局部在全局
相关知识
域作用限定符 //左边为空默认为访问全局变量
流插入、左移操作符二进制左移一位相当于*2 当和cout在一起时就是另外的操作符流插入二者并不冲突
cout可以自当识别数据类型 endl可以视为\n,即换行符号//endline
cin i ch; //流提取符、右移 操作符二进制右移一位相当于/2
%.2lf double留小数点后2位 %.3f float留小数点后3位