第4章C/C++语言基础 4.3~4.6

来源:互联网 发布:淘宝烟丝 编辑:程序博客网 时间:2024/06/01 08:54

1、左值可以出现在赋值语句的左边或者右边,即左值可以当右值使用;右值只能出现在赋值的右边,不能出现在赋值语句的左边。

左值表示程序中必须有一个特定的名字引用到这个值;右值表示程序中没有一个特定的名字引用到这个值。

(左值是一个存储地址,也就是一块内存存储数据所要操作的地址。而右值是一个具体的数据或者数值。)

变量是左值,可以出现在赋值语句的左边;数字是右值,不能被赋值;

 

2、C++支持复制初始化和直接初始化。

int a(100);// 直接初始化

int b=200;// 复制初始化

 

3、声明用于向程序表明变量的类型和名称。定义也是一种声明,当定义变量时也声明了它的类型和名称。也可以通过extern关键字声明变量名但不是定义它。

extern int a;//声明但是未定义a

extern声明不是定义,也不会分配存储空间,只是说明变量定义在程序的其他地方。含有初始化的extern声明被当做是定义,程序中变量可以声明多次,但只能定义一次。

声明主要目的是表明变量的类型和名称,而定义的主要目的是为变量分配存储空间。

 

4、 C++中,每个变量名都与唯一的实体相关联。用来区分变量名的不同意义的区域称为作用域。大多数作用域是用花括号来划定界限的。C++标识符作用域分为全局作用域和局部作用域。

不同作用域的变量可以使用相同的变量名,全局变量可以在程序中的任何地方访问。

作用域是程序的一段区域,作用域用于区别变量名的不同有效范围,分为全局作用域、局部作用域和语句作用域。一个变量名可以和不同作用域中的不同实体相关联。

 

5、C++中,作用域可以是嵌套的。

 

6、 C++中,变量的存储类型有自动类型、寄存器类型、静态类型、外部类型等4种。

(1)  自动类型变量(auto

自动类型只能是局部类型的变量,属于动态存储类型。

(2) 静态类型变量(static

Static,即在程序运行的过程中静态变量始终是占用一个存储空间。静态变量只能在它的作用范围内使用,使用局部静态变量是为了在下次调用该函数时,能使用上次调用后得到的该变量的值。

(3) 寄存器类型变量(register

属于动态存储类型,编译器不为寄存器类型的变量分配内存空间,而是直接使用CPU的寄存器,以便提高对这类变量的存取速度。

(4)外部类型变量(extern

外部类型变量必须是全局变量,C++中,两种情况使用外部的类型变量。一种是在同一源程序文件中,当在全局的定义之前使用该变量时,在使用前要对该变量进行外部类型变量声明。另一种是当程序有多个文件组成时,若在一个源文件中要引用在另一个源文件中定义的局部变量,则在引用前必须对所引用的变量进行外部声明。

 

若在某文件中定义的全局变量不想被其他文件所调用,则必须将该变量声明为静态全局变量,即静态全局变量只能供所在文件使用。

 

7、引用const引用

引用是对象的另一个名字,引用主要主要作用是作为函数的形参。引用是一种符合类型,通过在变量名前添加“&”符号来定义。C++不能定义引用类型的引用,但是可以定义任何其他类型的引用。

 

Const引用是指向const对象的引用,const引用必须被定义为const类型。

 

Const引用可以读取但是不可以修改引用对象,任何对const引用进行赋值都是不合法的,它适用于指向const对象的引用;而非const的引用不适用于指向const对象的引用,可以修改引用和被引用对象的值。

 

8C vs C++

C语言是结构化的编程语言,是面向过程的,C语言编程考虑的是实现过程;

C++是面向对象的,C++编程考虑的是整个程序模型。

 

9、匈牙利命名:变量名=属性+类型+对象描述。

变量名可以由字母、数字、下划线组成,必须以字母或者下划线开头,并且区别大小写。

 

原创粉丝点击