C++ Primer学习笔记2
时间:2011-05-06 来源:张小波
今天状态不是很好,总是感觉浑身乏力,喉咙的疼痛感也未见好转,没有状态呀。下班后早早地回到了宿舍,果断决定去打篮球发泄下,结果证明不应该在不恰当的时间做不恰当的事情,打篮球也被虐得不行。还是回宿舍去继续看我的c++吧!
今天看的是第2章,主要内容讲得是c++的基本类型和变量。毋庸置疑,数据类型是程序设计的基础。不管是内置类型(built-in type),还是语言本身提供的标准类型(library type)或者可扩展的类型(class type),都必须定义其存储空间要求和可以在该类型的所有对象上执行的操作。C++中,基本的内置类型包括整型和浮点型这两类算术类型(arithmetic type),还定义了一种称为void的特殊类型。其中整型又包括整数、字符和布尔值的算术类型,浮点型则包括单精度浮点数、双精度浮点数和扩展精度浮点数。
一切非内置类型的基石都源于内置类型,然而算术类型的存储空间依机器而定,C++标准只规定了每个算术类型的最小存储空间,并且不阻止编译器使用更大的空间。想到这里,我觉得这莫非就是C++跨平台的局限,但是C++标准如此制定,肯定是有他的道理的,虽然现在不能给出一个令自己信服的解释,但是,我希望我能够在今后的学习过程中逐渐解答自己的诸多疑惑,这或许就是一个对C++深入认识的过程。
有了类型的存在,我们就可以利用各种类型声明或定义各种变量。所谓变量,变量为我们提供了程序可以操作的有名字的存储区,这样我们可以根据变量名称来访问存储空间。值得一提的是,C++程序员常常把变量称为“变量”或“对象”。
C++对变量命名是有明确规定的,变量名是变量的标志符,可以由字母、数字和下划线组成,并且只能以下划线和字母开头,区分大小写,还得保证不与C++关键字和保留字相同。此外,需要我们注意的是,标志符不能包含两个连续的下划线,也不能一下划线开头后面紧跟一个大写字母。有的人也许会问为什么,以我现在的理解,我觉得可能是这些特殊情况都被C++标准库给占用了,以区别与用户声明或定义的变量。
对象的初始化有两种方式,直接初始化和赋值初始化,两种初始化方式如下:
int ival(1024); //direct-initialization
int ival = 1024; //copy-initialization
初始化是很有必要的,它可以避免未初始化的变量引起运行问题。毕竟定义一个变量,系统已经分配了符合该对象类型所要求的存储空间,而存储空间的内容却是未知的,人类对未知事物的掌控能力远远弱于掌控已知的事物,在写程序的时候,我们最好还是放弃我们崇尚的冒险精神。
此外,本章还对const限定符、引用、枚举、类类型、头文件等做了一个简单的介绍。在我看来,这些内容都是仅仅起了一个抛砖引玉的作用,真正的要理解,害得靠深入地去研究,多用程序代码去体会。虽然仅仅是一些规则,但是如果去深入了解一下为何要制定这些规则,规则是如何制定的,我想应该是一个比较有趣的过程。
总结一下吧,今天的代码敲的不够多,主要是看的理论性的东西,很多内容还需要在今后的实践中去慢慢理解、体会。过程也许很枯燥、很辛苦,但是我憧憬苦尽甘来的那一天。所以,再苦再累,我也要激励自己坚持下去。真的困了,可以美美的睡一觉了。