二 学习的开始
1.准备工作
工欲善其事必先利其器,学编程也不例外,在学习之前我们需要准备一个IDE(Integrated Development Environment).不要急着提问,让我慢慢告诉你,所谓编程你可以简单粗暴的理解为把一堆代码(Codes)写到一个文本中,然后通过一个编译流程把他变为可执行文件.通常情况下,编译流程需要经过源代码(source code)→ 预处理器(preprocessor)→ 编译器(compiler)→ 汇编程序(assembler)→ 目标代码(object code)→ 链接器(Linker)→ 可执行文件(executables)的过程,你一定会发出感叹:太复杂了吧!这让我怎么学啊!于是IDE就出现了,IDE把这个复杂的流程集成到了一起,当你写好代码后只需简单的按下一个键,IDE就会自动执行上述过程,最终得到可执行文件.
C++的IDE环境有很多,如大名鼎鼎的Visual Studio系列,code::blocks,visual c++,qtcreator等等,这里我推荐使用Bloodshed Dev-C++,你可以到http://bloodshed-dev-c.en.softonic.com/download免费获取它.
这里我还是要说明一下,当你对编程有一定的了解时,请务必摆脱IDE尝试手动编译,这可能会使你遇到困难,但收获绝对让你满意.
2.hello world
现在让我们开始编写大名鼎鼎的hello world程序并以此作为你的第一个C++程序吧.
首先打开Dev-C++,选择File(文件)->Source File(源文件)
然后输入下面这段代码
//2.2 hello_world - to print hello world #include <iostream> int main() { std::cout<<"hello world"; return 0; }
当你输入完这段代码后,继续按下File->Save as(另存为),选择名称比如helloworld.cpp最后保存.
这段代码的效果是在计算机屏幕上面输出一个“hello world"的字符,现在让我们一行一行来分析。
首先看到第一行
//2.2 hello_world - to print hello world
在C++里面//和/**/表示的意思就是注释,就像你的语文书上面一些文言文字词的注释一样,它的目的是让你的代码更简明易懂,他们不会被写到程序里面,也就是说无论你写多少注释都不会影响你的程序运行效率.也许你会提出这样的疑问;既然是注释那为什么要同时存在//和/**/?我很高兴你提出这样的问题,这表明你已经在认真地阅读本文了。C++可不会开这样无聊玩笑,//和/**/的区别在于//表示注释一行文字,当到第二行它的失去作用了;/**/可以跨越多行注释你,就像这样
//hello world /*he llo wor ld */
然后看到第二行
#include <iostream>
这就是C++的预处理指令,无论从表面还是实质来看它的意思都非常明确,即包含一个文件,确切的说是包含头文件。所谓包含文件就是把别人写的程序代码包含到你的程序中使用,就像有人写了创造1个地球的程序,你觉得不满意想把它改成创造5个地球的程序,这时候你就可以包含别人写的程序,然后再循环执行五次,虽然这个例子不可行,但是我们现在讨论的是包含的本质而不是真的执行这件事,你需要做好准备。前面已经说了是包含头文件,那头文件在哪里呢?毫无疑问iostream就是头文件,这个头文件是C++的标准文件,是别人提供的代码,你可以很方便的包含并使用它。
接着是
int main() { }
注意这里我把两个花括号都放到了一起,这表面他们是必须成对存在的。当你看到这里就已表示你看到了C++大门了,很可惜现在我不能告诉你它是什么意思,我希望你循序渐进的学习。现在我只能简单的告诉你它的名字叫函数(Function),你可能会感到惊讶这和数学中的函数看起来并没有任何关系啊?再次抱歉这些疑问只能以后告诉你,你现在需要知道的就是C++的主要代码就是由函数和类(Class)构成的。现在请记住你心中的疑问继续向下看。
std::cout<<"hello world";
这句好就是这个程序的核心,就是因为它程序才显示了hello world,遗憾的是她甚至比上面的函数更复杂,因为这就是一个类(Class),所以我不打算现在告诉你他的全部,你现在需要知道的就是引号包含的内容就是字符,你可以修改它让这个程序输出其他内容,比如说你的名字。
return 0;
最后这句话意思就是程序正常退出,有关它的实质我会慢慢道来。
到这里你的第一个程序就完成了,不过我想你心中也不会太高兴,因为有太多的疑问就像棍子一样打击了你学习的信心。在这里我要首先感觉它打击了你,如果你能接受这样的打击我会很高兴,这么沉重的打击都能承受后面你的学习就不会有任何阻碍了。最后请调整情绪继续阅读吧。