C++对C语言的加强,你知道的有多少?
2018-05-26 本文已影响1人
C语言程序狮
C中的命名空间
在C语言中只有一个全局作用域
C语言中所有的全局标识符共享同一个作用域
标识符之间可能发生冲突
C++中提出了命名空间的概念
命名空间将全局作用域分成不同的部分
不同命名空间中的标识符可以同名而不会发生冲突
命名空间可以相互嵌套
全局作用域也叫默认命名空间
![](https://img.haomeiwen.com/i12059643/6e9bac75070c1282.jpg)
2.实用性增强
C语言中的变量都必须在作用域开始的位置定义!!C++中更强调语言的“实用性”,所有的变量都可以在需要使用时再定义。
在学习C/C++或者想学习C/C++可以加群:775356268,大家一起学习交流
3.变量检测增强
在C语言中,重复定义多个同名的全局变量是合法的
在C++中,不允许定义多个同名的全局变量
C语言中多个同名的全局变量最终会被链接到全局数据区的同一个地址空间上
4.类型增强
C++中所有的变量和函数都必须有类型
C语言中的默认类型在C++中是不合法的
5.新增bool类型
C++在C语言的基本类型系统之上增加了bool
C++中的bool可取的值只有true和false
理论上bool只占用一个字节,
如果多个bool变量定义在一起,可能会各占一个bit,这取决于编译器的实现
true代表真值,编译器内部用1来表示
false代表非真值,编译器内部用0来表示
bool类型只有true(非0)和false(0)两个值
C++编译器会在赋值时将非0值转换为true,0值转换为false
![](https://img.haomeiwen.com/i12059643/7d99efb035c0bd18.jpg)
在学习C/C++或者想学习C/C++可以加群:775356268,大家一起学习交流
6.三目运算符增强
C语言返回变量的值 C++语言是返回变量本身
C语言中的三目运算符返回的是变量值,不能作为左值使用
C++中的三目运算符可直接返回变量本身,因此可以出现在程序的任何地方