2.1 常量、变量、整型、实型和字符型
2.1.1 如何创建最基本的能运行的C程序
学习C语言要做的第一件事是创建一个最基本的能运行的C程序,在Visual Studio 2019中,只需要如下几步简单操作,就能创建一个最基本的能运行的C程序,并能生成一些最基本的代码。
(1)启动Visual Studio 2019。
(2)在启动界面,单击右下角“创建新项目”选项,会弹出如图2.1所示的对话框,选择“控制台应用”选项,并单击“下一步”按钮。
(3)让系统新创建一个项目,请记住,Visual Studio 2019中,任何一个可执行程序都是通过新建一个项目的手段得来,所以新建一个项目是必需的。在图2.2中填写一些项目的配置信息。
· 项目名称:为创建的项目起的名字,例如输入MyProject。
· 位置:保存此项目的位置,可以直接输入一个目录路径或单击后面的“...”按钮选择一个已存在的目录名,这里导航到事先创建好的路径,即C:\Users\KuangXiang\Desktop\C++(读者可根据需要自由选择路径)。
· 解决方案名称:一个解决方案里可以包含多个项目,Visual Studio开发环境硬性要求一个项目必须被包含在一个解决方案里,同时,一个项目最终可以生成一个可执行程序,所以创建MyProject项目时,Visual Studio 2019会连带创建一个解决方案并让MyProject项目包含在该解决方案里,解决方案名称这里输入MySolution。
图2.1 Visual Studio 2019创建新项目
图2.2 新项目的一些配置信息
(4)单击图2.2右下角的“创建”按钮,系统开始创建项目,几秒钟后,系统创建好了一个叫作MyProject的项目,正好位于MySolution解决方案之下,如图2.3所示,因版本不断升级变化,读者的界面内容可能会略有差异,这不要紧,不要随意改动内容以免出错。
图2.3 成功创建了一个新项目
如果使用其他Visual Studio版本,创建项目的步骤大同小异,只要能创建一个基于控制台的C++程序项目供后续学习使用即可。如果对自己使用的Visual Studio版本不确定如何创建项目,可以通过搜索引擎搜索诸如“Visual Studio 2019创建新C++项目”这样的关键词组合就能找到详细答案。
展开图2.3左侧的“源文件”文件夹的树状分支,其中包含一个MyProject.cpp文件,这是系统依据图2.2所起的项目名称生成的一个源码文件,里面已经包含一些C++源码,其实目前系统生成的该项目已经能够编译并运行了。
项目要先编译、链接、生成可执行程序,然后才能运行(后续会详细讲述),这一整套动作用快捷键Ctrl+F5即可完成,按住Ctrl键,再按F5键即可,该快捷键在很多Visual Studio版本中通用,记住它。如果出现一个提示窗口,可以按提示窗口中的Yes,也可以直接按Enter键进行确认。
图2.4 编译生成可执行程序并执行
如果按Ctrl+F5键之后Visual Studio 2019没任何反应,可能是这个快捷键被其他软件所占用,此时可以用Visual Studio 2019中的菜单命令代替,依次单击如图2.4所示的菜单命令“调试”→“开始执行(不调试)”命令也能达到编译、链接、生成可执行程序并开始执行的效果。
可执行程序运行起来后,出现一个背景为黑色的窗口,其中显示HelloWorld字符串,如图2.5所示。因为刚才创建项目时选择的是“控制台应用”,这种“控制台应用”项目运行后显示的正是一个黑色窗口,该窗口中会显示程序执行的结果,作为C和C++语言学习者,通过该窗口显示运行结果完全能够满足学习要求。
图2.5 可执行程序的执行结果
此时按任意键,这个黑窗口关闭,预示着该可执行程序执行结束。可执行程序执行结果中之所以会显示Hello World,是因为在MyProject.cpp源码文件中有如图2.6所示代码行,代码的含义后面会逐步介绍,先不用深究。
图2.6 输出语句std::cout向屏幕输出字符串HelloWorld
重点提醒C语言新手注意:
(1)标点符号。例如分号等一律用半角符号,全角符号和半角符号的区别是全角符号比半角符号更粗大,全角符号一般是在输入法开启时输入的符号,半角符号一般是在输入法关闭(纯英文输入状态)下输入的符号,读者可以比较全角与半角符号的区别。
(2)因为Visual Studio版本各不相同,有些读者按快捷键Ctrl+F5生成并执行程序时发现黑色窗口一闪而过无法看清的问题,或者后续学习某些内容时,与笔者所述不太一致(例如笔者演示结果正常,但读者自己演示时却报错),此时,一定要做到:
①立即观看编译器报错信息,思考这些信息所提示的错误含义。
②必须学会利用搜索引擎,把疑问或错误信息输入到搜索引擎中来查找答案,用搜索引擎解决问题是每个人都必须要掌握的技巧,如果说书籍所起的最重要作用是传授体系化的知识,让人入对门、走对路、不走偏、不浪费时间,那么搜索引擎所起的作用就是让人在正确的道路上走得更独立、更深远。
图2.7对代码做一点修改
观察系统生成的MyProject.cpp源码文件,笔者修改了一行代码(std::count这行),并增加了一行printf代码,如图2.7所示。
有以下几点需要说明。
(1)每个C程序项目都必须有一个main函数(图2.7第6行),函数体由大括号括起来,后续章节会详细讲解函数的概念。有些版本的Visual Studio里叫_tmain ,都是一个意思。
(2)增加一条printf语句表示向屏幕输出一条信息,后面会详细讲解。当前需要知道该printf语句的含义是将双引号中内容原样输出,遇到“\n”表示换行,即遇到下一次用printf语句输出内容时会从新的一行开始输出。
(3)程序中每行内容称为一条语句,语句末尾用分号结尾,有些计算机编程语言一条语句末尾没有标点符号,但C语言要求一条语句末尾必须要有分号。当然,多条语句也可以写在一行上,彼此用分号分隔。
(4)在程序代码中写注释的目的是记录一些程序开发时的思路等信息,防止日后遗忘或方便他人阅读自己所写的代码。注释的内容仅用于阅读,不影响所开发程序的实际功能,注释分单行注释和多行注释,单行注释表示单独某一行是注释,多行注释可以一次性表示连在一起的多个行都是注释。
单行注释用“//”开头,例如图2.7第8行的“std::cout<<"Hello World!\n";”就被注释了,注释后该行在Visual Studio 2019中以绿色显示,注意图2.7所显示的各个字符颜色。读者计算机中所显示的字符或者背景颜色也许和这里不同,这些颜色其实可以自由设置,颜色设置以个人习惯为原则,可以通过搜索引擎了解如何改变这些字符颜色和背景颜色。
多行注释以“/*”开头,以“*/”结尾,如图2.8中第10~12行文字就是注释文字。
(5)一个C程序,总是从main函数开始执行,不管main函数在整个程序中处于哪个位置。
图2.8 多行注释用“/*”开始,用“*/”结束