经典中的品味:第一章 C++的Hello,World!
“程序设计要通过编写程序的实践来学习”—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++并不难。
经典中的品味:第一章 C++的Hello,World!相关推荐
- 《算法竞赛入门经典——训练指南》第一章相关内容
#<算法竞赛入门经典--训练指南>第一章相关内容 希望各位大牛能指导! 红色为已经做了的...黄色背景是还有不懂地方,希望在年前能刷完第一章啊.... 更新版.google上貌似又加了ex ...
- (转)在游戏中使用“CEGUI” — 第一章(底层)
在游戏中使用"CEGUI" - 第一章(底层) 日期:2006/4/13 – 2006/10/10 本文首次刊登于<游戏创造>,现开放与大家共享,转载请注明出处. ...
- 经典中的品味:第二章 C++基本的对象,类型和值(上)
摘要: 原创出处: http://www.cnblogs.com/Alandre/ 泥沙砖瓦浆木匠 希望转载,保留摘要,谢谢! 自律,是以积极而主动的态度,去解决人生的痛苦~ 上一章,我们大谈了Hel ...
- 全文:在游戏中使用CEGUI —— 第一章(底层)
本文首次刊登于<游戏创造>,现开放与大家共享,转载请注明出处. 作者介绍 唐亮(千里马肝),四年游戏从业经验,曾任职于大宇软星科技(上海)有限公司任程序技术指导,现在ATI任Engin ...
- 在游戏中使用“CEGUI” — 第一章(底层)
简介 CEGUI(Crazy Eddie's GUI http://www.cegui.org.uk)是一个自由免费的GUI库,基于LGPL协议,使用C++实现,完全面向对象设计.CEGUI开发者的目 ...
- ASP.NET Core中使用GraphQL - 第一章 Hello World
前言 你是否已经厌倦了REST风格的API? 让我们来聊一下GraphQL. GraphQL提供了一种声明式的方式从服务器拉取数据.你可以从GraphQL官网中了解到GraphQL的所有优点.在这一系 ...
- ASP.NET Core 中文文档 第一章 入门
原文:Getting Started 翻译:娄宇(Lyrics) 校对:刘怡(AlexLEWIS) 1.安装 .NET Core 2.创建一个新的 .NET Core 项目: mkdir aspnet ...
- 最小类型的微型计算机是什么,第一章-微型计算机中的数据类型.ppt
第一章-微型计算机中的数据类型 第一章 微型计算机中的数据类型 第一章 微型计算机中的数据类型 1.1 常用数据类型 带符号整数.无符号整数. BCD数(包括压缩的和非压缩 的二–十进制码). 字符串 ...
- 《HeadFirst Python》第一章学习笔记
对于Python初学者来说,舍得强烈推荐从<HeadFirst Python>开始读起,这本书当真做到了深入浅出,HeadFirst系列,本身亦是品质的保证.这本书舍得已在<Pyth ...
最新文章
- CTO集体怒吼:我到底要不要继续写代码(上篇)
- Visual Studio调试/加载速度很慢
- 全球农业发展中国方案-国际农民丰收节贸易会:榜样力量
- Android之自定义View的实现
- ssh中的相对路径与绝对路径的问题
- 如何在程序中不用加号实现加法_程序员那些事 | JavaScript基础(六)
- Mr.J--C语言头函数的建立(附严薇敏《数据结构》线性表代码)
- console.log 用法
- centos网卡发送被占满了_CentOS 查看实时网络带宽占用情况方法
- hdu 1106 字符串处理
- Android开发笔记(一百)折叠式列表
- Android Studio 下载ndk
- mac的spotlight搜索系统文件
- 惠普电脑win10关闭自动调节亮度
- Playing games
- 【Electron】 NSIS 打包 Electron 生成exe安装包
- lisp语言cond和if套用_lisp语言入门
- Python绘制图像(Matplotlib)(Ⅵ)
- 本周聚划算| 避免上班5分钟被开除 直降2000元企业办公实用利器一站全掌握
- 字符串之正则表达式匹配