经典中的博弈:第一章 C++的Hello,World!

经典中的博弈:第一章 C++的Hello,World!

摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢!

“程序设计要通过编写程序的实践来学习”—Brian Kernighan

1.1 程序

何为程序?简单的说,就是为了使计算机能够做事,你需要在繁琐的细节中告诉它怎么做。对于怎么做的描述就是程序。编程是书写和测试怎么做的过程。维基百科上说,一个程序就像一个用汉语(程序设计语言)写下的红烧肉菜谱(程序),用于指导懂汉语和烹饪手法的人(体系结构)来做这个菜。做一个形象的比喻,在生活中某种意义上,你都见到程序。石器时代,“我们用石头打它”。就是个程序。

图1.1 ”我们用石头打它“  摘自 《数学之美》

其中,他用怪叫和动作告诉小伙伴这行为,叫做程序。只有懂这个的伙伴才会一起拿起石头砸。但相对计算机来说,计算机很“笨”,为了像计算机解释这些,我们需要一种特定语法精确定义的语言。那就是编程语言,例如C++。

1.2 经典品味 ”Hello,world!“

这是经典的例子,在屏幕中输出”Hello,world!“:


1

2

3

4

5

6

7

8

#include <iostream>

using namespace std;

int main()

{

cout <<"Hello,World!\n";

return 0;

}

运行的结果:打印Hello,World!然后,下面新的一行.一个光标位于下一行的开始。


图1.2 Hello,World!输出

程序中,主要工作的代码:


1

cout <<"Hello,World!\n";

cout是一个标准输出流,使用 << 操作符可以将字符显示到屏幕上。很自然,这是你第一次看到缩写,cout:character outputstream的缩写。刚开始会不适应,但是当你遇见缩写多了的话,你会爱上他。

第一行:


1

#include <iostream>

他是个指令,这个具体是让我们使用标准的C++流I/O功能。这里,我们使用了cout和它的操作符<<.此外,使用#include包含的文件通常后缀有.h,称为头文件或头。我们基本上是使用C++自己提供的各种功能源代码。比如上面,我们需要什么功能就引入啥头文件。

程序入口:


1

2

3

4

int main()

{

return 0;

}

大家都知道一个程序要告诉计算机哪里开始执行,C++每个程序必须有个main函数。一个函数基本是个指令集也称指令序列,计算机会按着原定的顺序执行。一个函数通常包括:

  • 返回类型:这里是int,用来指定返回结果类型。
  • 名字:这里是main
  • 参数列表:这里为空,如果有参数,会写在()
  • 函数体:{}里面写了函数要执行的语句。

程序的结束:


1

return 0;

要知道,main函数是系统调用的,自然我们需要告诉系统何时结束。返回值可以用于检查程序是否成功,特别在有些系统(unix/linux)。有main()返回的一个 0 表示程序成功终止。

1.3你看不到的程序代码之外:编译 链接

”Hello,world!“程序的运行,通过C++编程语言。在它从人可读可改的格式转换为计算机可以理解的东西,这个过程我们需要一个成为“编译器”的程序。

何为编译器?

维基百科上说,编译器(Compiler),是一种电脑程序,它会将用某种编程语言写成的源代码(原始语言),转换成另一种编程语言(目标语言)。它主要的目的是将便于人编写,阅读,维护的高级计算机语言所写作的源代码程序,翻译为计算机能解读、运行的低阶机器语言的程序,也就是可执行文件。做个比喻,一个声控电灯,我们如果想说“把灯打开”,灯显然是不知道这句话的意思。它的世界是:”有声音我就亮“。进而,你的仆人就大叫一声,灯亮了。这个仆人的工作就是编译器的程序原理。

一个现代编译器的主要工作流程如下: 源代码(source code)→ 预处理器(preprocessor)→ 编译器(compiler)→ 汇编程序(assembler)→ 目标代码(object code)→ 链接器(Linker)→ 可执行文件(executables)。因此,可读可写的称为源代码,计算机可执行的是目标代码。在未来的日子里,你将接触到这个朋友,他非常严格。但请你记住,编译器是你编程中最好的朋友。下面我们展现程序的流程:

图1.3 Hello,World!的一生

1.4 第一章 小结 及 思考

Hello,World! 其实不重要,重要我们熟悉基本思想和工具。曾经看透菜谱,成为了大厨。曾经看破历史的,当了作家或者其他。勤奋,专注,锲而不舍。C++并不难。

如以上文章或链接对你有帮助的话,别忘了在文章按钮或到页面右下角点击 “赞一个” 按钮哦。你也可以点击页面右边“分享”悬浮按钮哦,让更多的人阅读这篇文章

下面是pdf,要下载的请打开:(http://files.cnblogs.com/Alandre/Cplusplus01.pdf

时间: 2024-10-09 20:01:24

经典中的博弈:第一章 C++的Hello,World!的相关文章

从思维导图中学习javascript第一章变量

1.变量为值类型时存放于栈中,保存与复制的是值本身,存放于栈中的变量所占内存固定 2.引用类型时存放于堆中,保存与复制的是指向对象的一个指针,使用NEW()方法构造出来的对象时引用型 3.全局变量:在函数外定义或在函数内部定义的无var的变量可以在任何位置调用,除非被显示删除否则一直存在 4.变量的优先级,局部变量>参数变量>全局变量

《HeadFirst Python》第一章学习笔记

对于Python初学者来说,舍得强烈推荐从<HeadFirst Python>开始读起,这本书当真做到了深入浅出,HeadFirst系列,本身亦是品质的保证.这本书舍得已在<Python起步:写给零编程基础的童鞋>一文中提供了下载.为了方便大家的学习,舍得特意制作了Jupyter Notebook格式的笔记,文章末尾舍得提供了笔记的下载地址. 读<HeadFirst Python>的同时,最紧要的是及时做练习,你甚至可以在快速浏览过一章后,便拿起练习来做. 做练习的时候

ROS机器人程序设计(原书第2版)补充资料 (壹) 第一章 ROS系统入门

书中,大部分出现hydro的地方,直接替换为indigo或jade或kinetic,即可在对应版本中使用. 第一章主要包括ROS简介和安装等,这里补充一些知识点,扩充书本内容. 第1页: ubuntu系统的安装,推荐镜像地址:http://cdimage.ubuntu.com/ 依据需要可以下载最适合自己版本并搭配对应的ROS.这里推荐LTS,长期支持版本. 更多内容查看Ubuntu官网及相关论坛:https://www.ubuntu.com/ 第2页: ROS支持非常多的机器人,可以参考:ht

[转载]无我的智慧 第一章 镜中修行

标签: 转载   原文地址:无我的智慧         第一章 镜中修行作者:心既是莲师 第一章 镜中修行(1) 作者:吉噶·康楚仁波切       出版社:陕西师范大学出版社 超越自我重要感进而看到真正的自己需要很大的勇气,但这就是我们的道路.所有佛法的重点,都是要减低自我重要感,如此实相才有机会显现:而这个过程必须由自我省思开始.     当我们照镜子时,最不希望镜中出现的是一个平凡人,我们希望看到一个很特别的人:不论有没有意识到这一点,我们就是不想看到一个面临许多阻碍.问题,甚至有点神经质

使用Micrisoft.net设计方案 第一章 企业解决方案中构建设计模式

第一章企业解决方案中构建设计模式 我们知道的系统总是由简单到复杂,而不是直接去设计一个复杂系统.如果直接去设计一个复杂系统,结果最终会导致失败.在设计系统的时候,先设计一个能够正常工作的系统,然后在此基础上逐步扩展.而一个好的企业设计方案就是由一些短小.简单.可靠.有效的并能够解决问题的机制组成.由这些短小精悍的机制进行组合,形成复杂的系统.而这些机制就设计模式.设计模式就是能够记录这些机制的一些描述. 企业级业务解决方案一般是复杂.性能要好.可扩展性好以及容易维护和可伸缩性强,而设计模式可以帮

第一章: 在RDB中的树结构数据

第一章: 在RDB中的树结构数据 在本章中,我将写一个基本的知识来理解这个问题 一  模型的作用 RBD处理树模型的作用总结为两点: 1  在RDB表中保存树的数据 2  效率的查询节点的相关节点 1  在RDB表中保存树的数据 我们可以定义的标准,该模型是否具有存储层次数据的功能 可以由保存的所有节点再现原有的层次结构 如果不能通过保存的数据再现原有的树结构,就不能说这个模型实现了树. 2  效率的查询节点的相关节点 通常,我们将数据保存到数据库中进行搜索,数据中保存了分层数据,可能会查询任何

精通ios开发第六版,第一章,文章中的例子及习题.

第一章 1 #import "ViewController.h" 2 3 @interface ViewController () 4 5 @end 6 7 @implementation ViewController 8 9 10 - (IBAction)buttonPressed:(UIButton *)sender { 11 //取出按钮的title 12 NSString *title = [sender titleForState:UIControlStateNormal];

iOS开发中的那些的约定俗成(1)————《编写高质量iOS与OS X代码的52个有效方法》读书笔记(第一章)

iOS开发中的那些的约定俗成(1) ----<编写高质量iOS与OS X代码的52个有效方法>读书笔记(第一章) 前言 "我要成为一个高产的开发人员.""想要混的好,就得多努力." 写这些东西是因为毕竟看了书,但是看书看过去之后,也许印象不是很深刻,有些东西现在也理解不了,那我就把我理解的,现在就可以用到的东西,简单的写出来就好,让自己今后看到就能明白其中的意思. 还有就是锻炼一下表达,编辑能力,慢慢的提升自己,随时随地的都要有一个锻炼的心. 最后当然就

Async in C# 5.0(C#中的异步编程Async) 蜗牛翻译之第一章

p { display: block; margin: 3px 0 0 0; } --> 写在前面 在学异步,有位园友推荐了<async in C#5.0>,没找到中文版,恰巧也想提高下英文,用我拙劣的英文翻译一些重要的部分,纯属娱乐,简单分享,保持学习,谨记谦虚. 如果你觉得这件事儿没意义翻译的又差,尽情的踩吧.如果你觉得值得鼓励,感谢留下你的赞,祝各位爱技术的园友在今后每一次应该猛烈突破的时候,不选择知难而退.在每一次应该独立思考的时候,不选择随波逐流,应该全力以赴的时候,不选择尽力