C++对c的增强和扩展
全局变量检测增强
int c;
int c = 10;
在C下没问题,在C++下不行,因为重定义。
函数检测增强
C语言:返回值,形参类型,参数个数没有检测
但是C++中检测了
类型转换检测增强
char *p = malloc(64)
c++下必须一致:
char *p = (char *)malloc(64)
struct 增强
C语言下结构体不能放函数:
C++下结构体可以放函数,可以简化关键字struct
C++可以通过结构体里的函数修改结构体里的变量
bool类型扩展
c语言下没有bool类型
c++下有bool类型:
bool会把非0的数转为1来处理。
true 真 1
false 假 0
其实也就是一个宏定义
三目运算符的增强
在c++下三目运算符其实返回的是一个变量
int a=10,int b=100;
a>b?a:b = 1000;
//b的值会被修改为100
在c语言下三目运算符返回的是一个值
const增强
c语言下const
全局const
在全局定义的const受到常量区的保护,是无法修改的
局部const
可以采用指针的间接修改来处理。
c++下const
全局const
和c语言是一样的,间接和直接修改都不行
局部const
通过间接修改可以编程完成,但是并不能修改