c++对c的增强

こ雲淡風輕ζ 提交于 2020-01-30 04:32:31
本文主要介绍c++对c语言所增强的内容

1. 增加了命名空间(namespace)

2. "实用性"增加

C语言中的变量都必须在作用域开始的位置进行定义
C++中强调语言的“实用性”,所有的变量都可以在需要的时候进行定义

3. register关键字(register关键字请求将其修饰的变量存放在寄存器中)

4. 变量检测的增强

在c语言中,重复定义多个同名的全局变量是合法的
在c++中,不允许定义多个同名的全局变量
c语言中多个同名的全局变量最终会被链接到全局数据区的同一个地址空间上

5. struct类型加强(可以完成和class一样的功能,同时也有一定的区别)

C语言的struct定义了一组变量的集合,C编译器不认为这是一种数据类型
C++中的struct是一个新类型的定义声明

6. C++中所有的变量和函数都必须有类型

	在c语言中:
		int f();表示返回值为int,接受任意的参数
		int f();表示返回值为int的无参函数
	在c++中:
		int f()和 int f(void)都表示返回值为int的无参函数

7. 新增加了bool类型关键字

原始的c语言是没有bool关键字的,在c99之后就可以支持bool关键字了
因此可以说bool是c++新增的关键字

8. 三目运算符:

	a.在c语言中,三目运算符的返回值是变量的值
	  在c++中,三目运算符返回的是变量的本身
	b.在c语言中,实现三目运算符的返回值做左值**左值**
	   左值:可以进行修改的内存空间(在c语言中,三目运算符不可以当左值,在c++中,三目运算符可以当左值)
	   *(a < b?&a:&b) = 30 首先表达式返回的是一个地址,进行*运算可以进行修改地址中的内容,
	   在c++编译器完成了取地址这步工作
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!