I - 新增类型
1.1 - 布尔类型
C 中没有布尔类型,所有真假的判断通过 int 类型, 0 为假,其他值为真, C++ 中新引入类型 bool
类型,可使用值 true
和 false
。
printf("size of bool = %d", sizeof(bool));
打印结果:
size of bool = 1
占用内存为 1 个字节
1.2 - string 字符串类型
C++ 中新增了 string 类型,相较 char 数组,更加便捷字符串的操作。
std::string str = "Hello";
str += " world!";
II - 修改类型
2.1 - 空指针
系统库中对 NULL 的定义为
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif
注意事项
不严格的编译器下,bool 类型可以与指针类型发生隐式转换
// definition
DataStruct(bool bval);
// call
DataStruct("Test"); // const char * to bool
III - 语法扩展
3.1 - struct
C语言中 struct 内不能定义部函数,仅可定义函数指针,但 C++ 中,struct 内部可以定义函数,新增一个与其相似的关键字 class,内部可定义变量,且定义函数。
IV - 对C语言的兼容
4.1 - 头文件
仍然支持C语言标准库头文件如
#include <stdio.h>
#include <stdlib.h>
一般 C++ 的头文件为去掉 .h ,对于C语言标准库头文件则去掉 .h 增加 c 前缀如
#include <cstdio>
#include <cstdlib>