C++相对于C的增强

1、C++对全局变量的定义检测能力增强了;
2、C++定义一个变量,可以随用随定义;
3、struct类型增强
c语言的struct定义了一组变量的集合,c编译器并不认为这是一种新的类型;
c++中的struct是一个新类型的定义声明。
4、三目运算符

C语言中,关于三目运算符,不可以作为左值使用,除非使用地址。
在这里插入图片描述

C++中,三目运算符,可以当左值,实际上返回的是引用。
在这里插入图片描述

5、const增强

const 定义常量——意味着只读;

const int a;与int const b;意思相同,代表一个常整型数;

const int *c; c是一个指向常整型数的指针(所指向的内存数据不能被修改,但是本身可以修改)

int * const d;d是常指针(指针变量不能被修改,但是它所指向的内存空间可以被修改)

const int * const e;e是一个指向常整型的常指针(指针和它所指向的内存空间,均不能修改)

在C++中,const修饰的变量,初始时并没有真正划分内存,只是在符号表中建立了一个键值对,只有编译阶段才会替换。类似于define,两者不同的是,define是在预处理阶段。

如,const in a=10;——a并没空间或地址,使用的是常量10替换。

在这里插入图片描述
在这里插入图片描述
那么a没有地址,赋值给p为什么没有报错?

因为,此时a是一个常量10,那么在c++中,如果对一个常量取地址,编译器会临时开辟一
个空间如temp,让这个指针存放这个临时空间的地址。
因此,*p改变的是这个临时空间的数值,并没有修改a。这也是上面最终输出的值的原因。
6、枚举的增强

c语言中枚举的本质就是整型,枚举变量可以用任意整型赋值;
c++中枚举变量,只能用被枚举处理的元素初始化。

在这里插入图片描述

7、C++新增Bool类型关键字
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值