知识点1 C++语法检查增强
c语言中
- int a = 10;
- int a;
在C++下编译失败
C++中的所有变量和函数都必须有类型
更加严格的数值转换
知识点2 C++对于结构体的增强
c中定义结构体变量需要加上struct关键字,C++不需要
c中定义结构体只能定义成员变量,不可以定义成员函数。C++既可以定义成员变量也可以定义成员函数
知识点3 C++新增bool类型
标准C++的bool类型中有两种内建的常量true或者false表示状态。bool类型只有两个值,true1值和false0值。bool类型占用一个字节大小,给bool类型赋值的时候,非0值会自动转换为true1,0值会自动转换为0false
知识点4 三目运算符功能的增强 a>b?a:b
左值与右值的概念:能够被赋值的就是左值,不能够被赋值的就是右值
c语言中三目运算表达式返回的是右值,不能够赋值
C++中三目运算表达式返回的为变量本身,为左值可以赋值,如a>b?a:b = 100;可以使用
知识点5 C++中const
c语言中的const变量修饰全局变量,默认有外部链接,修饰的变量名为只读,用户不可以通过变量名进行赋值操作。当const修饰的是局部变量的时候,可以通过地址对应空间的内容进行修改
C++中的const
C++的const全局变量默认是内部链接,只有在当前源文件有效,不能够直接用于其他源文件。要在其他源文件使用需要加extern转换为外部链接extern const int num = 100;
对于基础类型系统不会给其开辟空间,而是直接放到符号表中,当给其取地址的时候系统才会给他开辟空间。使用时也必须使用指针,否则依然直接从符号表中取值。
当以变量的形式初始化const修饰的变量,系统会为其开辟空间。
比如const int a = b; 系统会直接为a开辟空间,而不会把a放到符号表中
const自定义的数据类型(结构体、对象)系统会分配空间
学到了学到了