1、语法检查增强
声明int a;
定义int a = 10;
c语言的弱语法类型
2、严格的类型转换
枚举类型不能赋值整形
3、struct类型加强
c中定义结构体变量需要加上struct关键字,c++不需要
c中结构体只能定义成员变量,不能定义函数。c++可以定义成员函数
4、bool类型
c没有布尔类型,标准c++的bool有两种内置的常量true(1)和false(0),非零值自动转换为1
5、三目运算符扩展
C语言的三目运算符返回值为数据值,为右值,不能被赋值
a>b?a:b=100写法错误
C++语言的三目运算符返回值为变量本身,为右值,不能被赋值
a>b?a:b=100写法正确,等价于b=100
6、const详解
在C语言中:
const修饰全局变量,变量名只读,内存空间在文字常量区只读,不能通过num地址修改空间内容
const修饰局部变量,变量名只读,内存空间在栈区,可以通过num地址,间接修改const int num = 100可以通过地址修改
在C++中:
对于基础类型,不会开辟空间,当取地址/声明为extern时/自定义数据类型,才会开辟空间
7、尽量用const代替#define