###写在前面
解读每一个字符,思考代码,而不是使用代码
-
如果我是编译器,那么我能确定这些代码想干什么吗?『考虑一下编译器的感受』
-
如果我是设计者,那么我为什么要这样设计语法,有何便利?还是不得已而为?
###My First Program
//单行注释,只给程序员看,编译器忽略。
/*
C语言风格的多行注释。
这个注释下面的空白行属于空白字符——空格,制表符,换行符。
空白字符跟注释一样,只给程序员看。
*/
#include <iostream>
int main( )
{
std::cout << "Game Over!" << std::endl;
return 0;
}
『头文件』#include
以#开头的预处理器指令,在编译之前运行,根据指令来进行文本替换。
include告诉预处理器将另一个文件(标准库(std)的一部分文件iostream)的内容包含到这个程序里。
文件名两端的< > 告诉预处理器在其自带的文件中查找所需要的文件。
预处理后,cout与endl会被替换成iostream里的代码。
int main( )
『main函数』程序运行的起点。
其实这个函数是有参数的。
{
花括号{ },限定哪些代码是属于这个函数的。
std::cout « “Game Over!” « std::endl;
std告诉编译器,cout来自std,std是名称空间。
::
是域解析符。
名称空间(namespace)唯一标示了成员所属的组,想象一下不同文件夹里的文件可以有相同的名字。
iostream是文件,他在std文件夹里,iostream中定义了cout和endl
cout是iostream中的对象,用于向标准输出流(控制台窗口)发送数据。
其实
<<
经过了重载,不然的话他应该长这样cout.printf( );
在
""
中的Game Over!
叫字符串字面值。
endl也是std中的一个对象,功能类似于按下回车键。
『结构图』标准C++->标准库std->iostream->cout/endl
return 0;
main函数结束(程序结束)返回整数值(int)0,表示程序正常结束。
有些人写void main( )所以他们不用return,我不怎么喜欢他们。
}
using namespace std;
//直接获取std名称空间中所有元素的访问权。
using std::cout;
using std::endl;
//不会将无意要使用的元素本地化(变得可以访问)。
###后话
- 论注释的重要性
-
正常程序员的第一个程序应该是Hello World。
-
或许有些人很不喜欢using namespace std;(安全性),但我还是决定使用它。
- 为什么? 因为我写的是小程序啊。哦还有,简洁嘛(懒)。