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代替宏,有数据类型和作用域