C++中语法的加强:


01、在C语言中函数形参可以没有类型,但C++必须严格类型,因为C语言是弱语法语言,所以在C中不写形参类型可以使用任意形参 如 void func( a); 但C++中不可以
02、C语言不同类型转换可以赋值整型类型,C++中不允许
3、结构体的加强,C语言中在定义时需要用struct 修饰才可以创建结构变量,C++中不需要使用关键字就可以直接创建结构体,并且C++中的结构体可以直接在结构体中实现函数
4、C++ 新增"bool 类型"C语言中需要增加头文件 "stdbool.h"才可以使用bool类型

5、三目运算的加强 如: a>b?a:b; 在C语言中其返回的为右值(就是实际的值,并非标识符)在C++中三木运算返回的是左值,也就是可以进行赋值的标识符
6、C++中的const 是只读变量,const 修饰全局变量默认其外部链接
C++中const 修饰全局变量时 只作用于当前文件,默认当前内部链接,仅在当前源文件
如果需要使用外部链接可以增加 extern 如果不加只作用于内部链接。
另外注意:在调用其他文件中被const 修饰的全局变量时,声明不可以赋值
如图中 extern const int sun;//这里如果赋值,则编译器认为该只读常量不是声明而是定义了一个只读变量。根据就近原则,编译器会执行赋值的本文件内的数据
对于基础类型,C++不会给const 类型变量开辟空间,而是会放入一个符号表,也就是说所有存在该变量的地方都用其值替换,类似于define ,但会在取地址的时候开辟空间。
因const 修饰的只读变量未开辟空间,且仅从符号表中取值,而根据其地址改变的值,并不能通过变量获得,仅能从开辟的空间中获得。


注意:在c++中 const 和define 尽量使用const 来代替define