Accelerated C++的学习笔记 作者:由克尼格和莫欧两者编著
2015/2/26 星期四情
第0章
本章我们通过一个由C++编写的小程序来慢慢推开C++编程的大门。
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
//一个较小的程序
#include<iostream>
int main()
{
std::cout<<"Hello,World!"<<std::endl;
return0;
}
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
上面就是一个简单的程序,我们一般称为Hello,Word!程序。如果我们以后有兴趣学习其他的编程语言,我们会发现,这个程序几乎家喻户晓。
那么,我们思考,这个简单的小东西会能让我们学到什么呢?
让我们逐行来进行讲解。
0.1章(注释)
程序的第一行,我们看到了//,对就是两个斜杠,它们的作用是注释掉其后的内容,后面直到行末的东西都不会被编译,它可以对程序进行解释。
0.2(#include指令)
C++的许多工具,都不属于核心语言,而是属于标准库的一部分。比如我们常用的输入输出。我们要用到哪部分的标准库,就用如下的形式去申请
。。。。。。。。。。。。。。。。。。。。
#include<标准库名称> //就是传说中的 标准头文件。 。 。 。 。
。。。。。。。。。。。。。。。。。。。。
包含了标准头文件之后,程序就可以使用相关的库所提供的功能了,比如本例中用到了输出流,所以申请了iostream的头文件,其他的同理,比如math(数学),algorithm(算法)等等。
0.3章(主函数main)
我们这里说的函数,并非数学函数那么狭隘,一个英文单词就可以和好的帮助你理解(function),对一个函数可以理解为一个功能。这里的主函数比较特殊,因为每个程序都得有他。(关于数值类型,返回值之类的东东我就不多讲了,自己查去)
0.4章(花括号)
花括号将它们之间的东西当作一个单元来处理,会按先后顺序执行。左花括号表示函数体的开始,右花括号表示函数体的结束。
0.5章(使用标准输入输出)
我们可以看原程序的输出语句。同时,我们来解释:标准库使用std包含所有由它定义的名称。std通常被叫做命名空间。cout之前使用std表明cout是std这个命名空间里面的内容。名称std::cout指标准输出流,标准输出流是全部c++实现用于普通的程序输出的工具。在窗口操作系统环境下,系统运行的时候,系统会将一个程序和一个窗口联系起来,而std::cout指示了这个窗口。在这样的系统环境下,写到std::cout中的内容将会出现在相应的窗口中std::cout表示当前输出结束,接下来的输出将会出现在下一行。
0.6章(返回语句)
略。。。。。。。。
0.7章(进一步的探讨)(关于表达式,操作数,类型,运算符,作用域,副作用,控制器,字符串字面量)
这个程序涉及了在c++中随处可见的两个概念:表达式和作用域
表达式会使编译器进行运算,运算可能会产生副作用,比如3+4产生的结果是7,没有副作用。但是std::cout <<”Hello,Word!”<<std::endl;,就是一个有副作用的语句它会将一个字符串进标准输出流并结束当前行。表达式又包括操作数和运算符,其中std::cout,std::endl;,Hello.Word!是操作数,<<是运算符。
每个操作数都有一个类型(质上来讲,类型表示的是一种数据结构以及对此数据结构的合理操作,C++从本有两种形式的类型,核心语言提供的内建类型以及定义在核心语言之外的类型)std::cout是std::ostream类型(在库中定义的)
运算符<<有左右两个操作数 ,<<是左结合的。可以解释为什么输出可以写成链式的。
std::endl;是一个控制器,当它写到流中时,就可以控制流了。
std是一个作用域,前面已经提到过了,另外花括号也是一种作用域。
main函数返回0时意味着运行成功,否则意味着失败。写不写return语句都可以,应为不写的话编译器会假设它返回0值。不过为了养成好的变成风格,最好养成写上return的好习惯。
字符串字面量:从双引号开始而且结束于双引号,每个字符串字面量都必须全部出现在一行中。如果字符串字面量中的字符是跟在反斜杠的后面,那么他们则具有特殊的含义。