您的位置:首页 > 编程语言 > C语言/C++

《C++ Primer》 第02章 [ 变量和基本类型 ]

2013-01-19 11:40 176 查看
第02章:变量和基本类型

第三节:变量

@ 学习摘录007:

——C++是一门静态类型语言,在编译的时候会作类型检查.

@ 学习摘录008:

——左值:lvalue,左值可以出现在赋值语句的左边或右边。

——右值:rvalue,右值只能出现在赋值的右边,不能出现在赋值语句的左边。

——变量是左值,因此可以出现在赋值语句的左边,数字字面是右值,因此不能被赋值。

摘录有想008:

——在我理解中,因为变量可在左也可在右,因此它为左值,而数字则只能出现在右边,因此它为右值。

@ 学习摘录009:

——变量提供了可以操作的有名字的存储区,对象就是内存中具有类型的区域。

摘录有想009:

——例如:int a; class b{}; b c; 这里,a 和c属于对象。

@ 学习摘录010:

——初始化变量不是赋值。

——初始化:指创建变量并给它赋初始值。

——赋值:是擦除对象的当前值并用新值代替。

@ 学习摘录011:

——初始化变量有两种形式。

——1. int ival(1024);  // direct-initialization  直接初始化

——2.int ival = 1024;  // copy-initialization  复制初始化

@ 学习摘录012:

——复制初始化和直接初始化之间的差别是很微妙的。

——现在我们只需知道,直接初始化的效率更高。

@ 学习摘录013:

——未初始化变量引起的错误难以发现,永远不要依赖未定义行为,使用未初始化的变量是常见的程序错误。虽然许多编译器都至少会提醒不要使用未初始化变量,但是编译器并未被要求去检测未初始化变量的使用。而且,没有一个编译器能检测出所有未初始化变量的使用。

收大收获014:

——extern声明不是定义,也不分配存储空间。

——事实上,它只是说明变量定义在程序的其他地方。

摘录有想014:

——extern的使用得注意,一个文件里面放定义,另外一个文件里面放声明才可以,上次同学就是犯了这样的错误,没有在另一个文件中声明就想用extern变量了。

@ 学习摘录015:

——只有当声明也是定义时,声明才可以有初始化式,因此只有定义才分配存储空间。

@ 学习摘录015:

——看来下次写程序时真的要直接在声明的时候就定义好,那样的话就安全多了。

@ 学习摘录016:

——作用域可以分为三种:

——1.全局作用域(global scope)

——2.局部作用域(local scope)

——3.语句作用域(statement scope)

摘录有想016:

——有语句 for(int val = 1; val <= 10; ++val) sum += val;

——此处,val 定义在for语句的作用域中,只能在for语句中使用,而不能在main 函数的其他地方。

第五节:引用

@ 学习摘录018:

——“const引用”的意思是“指向const 对象的引用”。

@ 学习摘录019:

——非const引用只能绑定到与该引用同类型的对象。

——const引用则可以绑定到不同但相关的类型对象或绑定到右值。

第八节:类类型

@ 学习摘录020:

——每类都定义了一个接口(interfer)和一个实现。

——接口由使用该类的代码需要执行的操作实组成。

——实现一般包括该类所需要的数据。

——类体定义了组成该类型的数据和操作。操作称为成员函数,数据则称为数据成员。

@ 学习摘录021:

——用class和sturct关键定义类的唯一差别在于默认访问级别:默认情况下,struct的成员为pulbic,而class的成员为private.

@ 学习摘录022:

——当我们在头文件中定义了const变量后,每个包含该头文件的源文件都有了自己的const 变量,其名称和值一样。

@ 学习摘录023:

——避免多重包含,为了避免多重包含,避免名字冲突,预处理器变量经常用全大写字母表示。

#ifndef ABC_H

#define ABC_H // Definition of ABC class and related functions goes here

#endif

摘录有想023:

——看了这么多书,这么多个例子,终于知道为什么它总是用大写来表示了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: