C++笔记3.13

知识点1 C++语法检查增强

c语言中

  1. int a = 10;  
  2. 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自定义的数据类型(结构体、对象)系统会分配空间

“C++笔记3.13”的一个回复

发表评论

邮箱地址不会被公开。 必填项已用*标注