目录
1 程序的作用
2 新建项目及编译运行
2.1 新建项目
2.2 HelloWorld 程序说明
2.3 printf 打印输出
2.4 注释
3 程序的编译过程及项目位置
4 断点及调试窗口设置
5 学习C语言后的境界
1 程序的作用
如下图所示,我们编写了一个可以做加法的程序,我们给程序输入 1 和 2,那么程序输出结果 3,因此程序的作用是完成某种计算。
2 新建项目及编译运行
2.1 新建项目
2.2 HelloWorld 程序说明
新建项目后默认会有一个main.c代码,如下图所示:
#include <stdio.h> // 引入标准输入输出头文件,以便使用printf函数
int main() { // 主函数,程序的入口点
// 调用printf函数,在屏幕上打印出"Hello, World!\n"
// \n 是一个转义字符,表示新的一行
printf("Hello, World!\n");
// main函数返回0,表示程序正常结束
return 0;
}
程序说明:
- main是主函数名,int是函数返回值类型。
- 每个C程序有且只能有一个主函数main,程序从main函数开始执行。
- 花括号{}是函数开始和结束的标志,不可省略。
- 每个C语句均以半角分号结束。
2.3 printf 打印输出
使用标准库函数时应在程序开头一行书写如下内容:
#include <stdio.h> //printf函数需要使用该头文件
printf函数起打印输出的作用,它将双引号中的字符串 Hello, World! 打印到屏幕上。
2.4 注释
两个斜杠“//”后面的内容为代码注释,程序编译时不会编译到程序中。
3 程序的编译过程及项目位置
程序的编译过程如下图所示。首先编写源程序main.c。编写完毕后,通过编译器进行编译,main.c经过编译后,得到可执行文件(windows下是exe,Mac和Linux下是不带后缀的,统称为可执行文件),可执行文件中均是0/1类型的机器码,即CPU能够识别的微指令(英特尔的机器指令),CPU才能够去执行。
如下图所示,右键单击“项目名”,选择打开,选择Explorer:
就可以看到如下界面,就是我们的项目文件夹:
4 断点及调试窗口设置
程序在我们点击绿色三角形按钮时,一下子就运行到最后一步了,速度非常快,如果最终输出的结果和我们预期的不一样,我们如何查找代码的哪一步出了问题呢?秘诀就是让它运行慢下来(类似于魔术慢放),一次只让程序运行一步,如何让程序运行慢下来,那就是断点调试!如下图所示,在位置1处添加断点(断点位置代表从哪一步我们开始慢下来),点击位置2启动调试。
当点击虫子按钮后,调试就启动了,出现蓝色长条代表调试启动,如下图所示:
注意:蓝条所在行,表示此语句还未得到执行。
点击了上图的单步运行按钮(上图2指向的折弯箭头),得到如下图:
什么是调试?
程序每一步的运行会发生计算,计算会改变变量的值,我们通过变量监视窗口,如果发现某个变量值不符合我们预期时,就代表我们找到了bug(程序员把程序中出现的错误称为bug)。
5 学习C语言后的境界
掌握的能力是程序的调试能力,要灵活掌握单步调试手段,要能在清晰理解程序执行过程的基础上准确分析数据(变量)的变化过程,定位程序的问题点,进而解决问题。学好了C语言,才能去练习中级阶段的数据结构算法实战,而且以后在学习其他任何语言并调试程序的问题时都会事半功倍!
6 练习题
1、程序的作用是完成某种计算?
A.正确 B.错误
答案:A
2、一个项目可以有2个main函数?
A.正确 B.错误
答案:B
解释:一个项目只能有一个main函数,因为main 函数是入口函数,程序从这里开始运行。
3、源代码文件main.c需要编译为最终的可执行文件,CPU才能执行,CPU不能够直接去运行main.c?
A.正确 B.错误
答案:A
解释:因为编译好的可执行文件内的指令是才能够被CPU的译码器解析。
4、CLion是点击绿色三角形开启调试?
A.正确 B.错误
答案:B
解释:绿色三角形按钮是运行按钮,绿色小虫子按钮才是调试按钮。
5、CLion 调试时蓝色长条线所在行代码已经得到执行?
A.正确 B.错误
答案:B
解释:蓝色长条线所在行代码并未得到执行,是其将要被执行。