[C++可以这样学] 二 学习的开始

二 学习的开始

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;

最后这句话意思就是程序正常退出,有关它的实质我会慢慢道来。

到这里你的第一个程序就完成了,不过我想你心中也不会太高兴,因为有太多的疑问就像棍子一样打击了你学习的信心。在这里我要首先感觉它打击了你,如果你能接受这样的打击我会很高兴,这么沉重的打击都能承受后面你的学习就不会有任何阻碍了。最后请调整情绪继续阅读吧。

时间: 2024-10-13 12:25:56

[C++可以这样学] 二 学习的开始的相关文章

分享《动手学深度学习》高清PDF+视频教程-李沐著

下载:https://pan.baidu.com/s/10EKdEe-vjp9i97xP1FWuGA 更多资料学习:http://blog.51cto.com/14087171 由 MXNet 创始人李沐大神.Aston Zhang 等人所著的交互式书籍<动手学深度学习>推出了在线预览版,面向在校学生.工程师和研究人员,旨在帮助读者从入门到深入.动手学习深度学习,即使是零基础的读者也完全适用. 在本书上线之前,李沐等人还推出了<动手学深度学习>系列视频,这门课程的第一季已经于今年

分享《动手学深度学习(李沐等著)》PDF+源代码+《神经网络与深度学习(吴岸城)著》PDF

下载:https://pan.baidu.com/s/11O2m_uxSWJGbkXHF2Zh94w 更多资料:https://pan.baidu.com/s/1g4hv05UZ_w92uh9NNNkCaA <动手学深度学习(李沐等著)> 中文PDF,530页,带书签目录,文字可以复制粘贴.配套源代码. <神经网络与深度学习 (吴岸城)著>中文PDF,233页,带书签目录. 如图: 原文地址:https://www.cnblogs.com/limujun/p/10054478.ht

对比《动手学深度学习》 PDF代码+《神经网络与深度学习 》PDF

随着AlphaGo与李世石大战的落幕,人工智能成为话题焦点.AlphaGo背后的工作原理"深度学习"也跳入大众的视野.什么是深度学习,什么是神经网络,为何一段程序在精密的围棋大赛中可以大获全胜?人工智终将会取代人类智慧吗? <神经网络与深度学习>是一本介绍神经网络和深度学习算法基本原理及相关实例的书籍,它不是教科书,作者已尽量把公式减少到最少,以适应绝大部分人的阅读基础和知识储备.<神经网络与深度学习>涵盖了神经网络的研究历史.基础原理.深度学习中的自编码器.深

【动手学深度学习】Jupyter notebook中 import mxnet出错

问题描述 打开d2l-zh目录,使用jupyter notebook打开文件运行,import mxnet 出现无法导入mxnet模块的问题, 但是命令行运行是可以导入mxnet模块的. 原因: 激活环境是能够运行代码的前提. 解决方法: 在d2l-zh目录运行conda activate gluon命令,然后再打开jupyter notebook,则可以正常导入mxnet模块. 参考 1. d2l-zh-doc; 2. [动手学深度学习]中Jupyter notebook中 import mx

小白学习之pytorch框架(2)-动手学深度学习(begin)

在这向大家推荐一本书-花书-动手学深度学习pytorch版,原书用的深度学习框架是MXNet,这个框架经过Gluon重新再封装,使用风格非常接近pytorch,但是由于pytorch越来越火,个人又比较执着,想学pytorch,好,有个大神来了,把<动手学深度学习>整本书用pytorch代码重现了,其GitHub网址为:https://github.com/ShusenTang/Dive-into-DL-PyTorch   原书GitHub网址为:https://github.com/d2l-

云计算需要学什么?学习云计算能从事什么岗位?

随着国家政策支持以及互联网的迅猛发展,我国云计算产业迎来全新发展机遇.越来越多的企业选择使用云计算技术,云计算人才也成为稀缺人才.很多人看好云计算的未来前景,但却不知道云计算方向可以从事什么职业,那么云计算需要学什么?学习云计算能从事什么岗位? 从事云计算方面工作,需要学习以下的知识技能: 商业和金融技能 技术和商业的融合始终是成功的绝对法宝,尤其在云计算时代. 技术技能 自从有了云计算,企业或者其他机构可以精简他们的IT资源,卸载大部分的日常系统和应用程序管理,但这并不意味着IT将无所事事,你

DataWhale 动手学深度学习PyTorch版-task3+4+5:文本预处理;语言模型;循环神经网络基础

课程引用自伯禹平台:https://www.boyuai.com/elites/course/cZu18YmweLv10OeV <动手学深度学习>官方网址:http://zh.gluon.ai/ ——面向中文读者的能运行.可讨论的深度学习教科书. 第二次打卡: Task03: 过拟合.欠拟合及其解决方案:梯度消失.梯度爆炸:循环神经网络进阶 Task04:机器翻译及相关技术:注意力机制与Seq2seq模型:Transformer Task05:卷积神经网络基础:leNet:卷积神经网络进阶 有

跟着韦老师学Linux学习笔记(二)-存储管理器

(1).CPU操作外设的基本原理图 由图可知,CPU要想访问一个外设,是要通过存储管理器来实现的.本篇中,主要是通过操作SDRAM来实现存储管理器的学习. (2).配置原理和步骤 访问一个芯片需要的配置信息: 1.  片选信号 2.  地址线 3.  数据线,即使数据宽度 4.  时钟\频率 5.  芯片相关的东西:对SDRAM来说 a)         行地址有多少位 b)         列地址有多少位 c)         BANK有多少位 操作一个SDRAM的步骤就是: a.  首先通过

强强学Android_Volley学习

Volley 学习笔记 如有错误之处请大家帮忙指出纠正__谢谢 ------------------------------------------------------------------------------------------------------------------------------------------- 一 : Volley概述  ------------------------------------------------------------ 框架功