虽然大学期间学习了C++,但是对于C++还是相当模糊(只能说自己没好好学呗,恶补吧,还能咋办?)
所以心血来潮想对C++有一个系统的学习,不期望对底层有多么深入的了解,不要求对代码有多么好的优化(力求),但至少能够达到熟悉C++语法,能够编程的高度,所以,开始吧!!
工具:VS2015(2017)
VS的安装应该都不是问题,网上也有很多教程,这里说一下我踩的第一个坑,就是语言包的问题。
下面给出更换语言的具体操作:
1 选择菜单栏tool-----options
2 选择Internation Settings,可以看到下拉列表中只有两种语言,其中有一个链接(Get additional laguage,图中被下拉列表掩盖了),点击。
3 来到网页,在网页的下拉列表中选择中文简体
记住。。。。。这点儿有个大坑,一定不要立马去点击下载,一点要等页面刷新之后,变成中文的再去下载,否则下载的仍然是英文的,会提示你该语言包已经安装了(英文的当然已经安装了)
4 安装完成之后,回到第二步的界面,会发现已经有简体中文的选项了,选择之后,会提示重启VS,当然重启就好。
码农第一个程序:hello world
首先,简单创建项目
1 新建项目,设置好项目名称和路径
2 下一步,选择空项目,点击完成即可
3 新建或者添加源文件即可
代码如下:
点击上面的本地windows调试器(或者F5),结果显示:
当然,代码和结果很重要,但是本着学习的态度,我们应当对代码有所了解,为什么会这么运行?
首先,程序的第一行:#include<iostream>是什么含义?
其一:include是包含的意思,而iostream是一个头文件,#include<头文件名字>表面理解就是把头文件包含在程序中,以便我们可以使用头文件中的内容。
其二:头文件并不是这种单一的声明模式,还可以通过#include"头文件名字",比如自己写的头文件:head.h,使用时就声明为#include"head.h",这些在以后的学习中会慢慢体会的,当然,这两种方式是有区别的:
<>方式只在系统目录之下进行查找
""方式现在当前目录下进行查找,如果在当前目录下,找不到的时候再到系统目录之下进行查找
<>可以采用""进行替换,但是""不可以采用<>进行替换。
其三:使用<>方式时,加不加.h的区别,具体来讲,#include<iostream>和#include<iostream.h>的区别?
include<iostream.h>是在旧的标准C++中使用。在新标准中,用#include<iostream>。使用#include<iostream.h>相当于从C中调用库函数。
其四:#include<iostream>在这段代码中的具体作用?
iostream=input+output+stream=输入输出流,使用该头文件声明后,可以很方便的使用以下两个符号:
<<:输入符号
>>:输出符号
如果不声明,就会报错。
然后,程序第二行:using namespace std;的含义?
表面上:使用名字空间std,其实具体上也就是这么个意思。using和namespace都是C++的关键词,使用命名空间是为了防止命名冲突。我们使用哪个命名空间,就可以使用该名字空间下的内容(类和函数)。在这段代码中,当使用<iostream.h>时,相当于在C中调用库函数,使用的是全局命名空间,也就是早期的C++实现;当使 用<iostream>的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout。
最后,是代码块int main(){}?
int是C++中的一种数据类型,int main(){}定义了一个函数,该函数的返回值是int类型的(可以看到最后的return 0),当然,函数的返回值有多种(bool,char, string等等),以后会遇到的。
cout << "Hello world"; 是在控制台输出Hello World字符串。
system("pause"); 调用“pause”命令,让操作系统来暂停该程序进程的执行,同时程序运行到此语句处时,会在程序的窗口上显示“Press any key to continue . . .” 也就是 “按任意键继续...”,即等待用户按下任意一个按键使该程序从暂停状态返回到执行状态继续从刚才暂停的地方开始执行。当然最重要的目的是便于我们观察输出。
return 0; 函数返回值。
以上内容就是hello world所展现的内容,当然还有更多的底层知识像大海一样深不见底:cout是具体实现的呢?编译器是如何运行的呢?为什么写完这些就会输出信息呢????
唉~慢慢学呗!!