年轻人的努力

导航

c++对c的扩展

1.面向对象和泛型编程

2.对全局变量的检测增强

  int a;

  int a=1;

  在c下是可以的,c++不可以

3.函数检测增强

  返回值,形参,函数调用的个数

4.类型转换检测增强

  必须进行强转

5.staruct增强

  c下结构体内不能有函数

  创建结构体变量的时候必须加struct,c++可以,因为c++把结构体按照类来处理

6.bool类型

  c没有,bool flag=true;true的值为1,false为0,给变量赋值的时候,如果是非0数,会自动转为1

  sizeof(bool)值为1

7.三木运算符增强

  c返回的时值,c++返回的时变量

8.const增强

  c下是伪常量,全局const,通过指针可以编译通过,不能运行,局部const编译和运行都可以,因为全局在只读内存中,局部在栈上

  c++下全局和c一样,局部编译可以通过,可以运行,但是值修改不了,因为const修饰的变量被保存在符号表中不在栈中,符号表是以key和value存储的,是真正的常量

  c下的全局cosnt,默认是外连接属性,就是默认添加了extern

  c++下全局const,默认是内连接属性,就是c++默认不会添加extern,要显示添加extern才行

  1.使用局部const变量会修改分配内存 2.使用变量给const局部变量赋值,会分配内存

  const修饰自定义的数据类型,可以通过指针修改成功,因为自定义的数据类型会分配在栈上

  建议使用cosnt代替宏,有数据类型和作用域

posted on 2021-04-14 19:42  年轻人的努力  阅读(198)  评论(0编辑  收藏  举报