Dev-c++调试

测试代码00:

#include<stdio.h>

int main()
{
	int a = 0, b = 0;
	scanf("%d %d", &a, &b);
	int c = 0;
	c = a + b;
	return 0;	
} 

一、
一号图:

我在c = a+b;这行前面设置一个断点,如何设置断点呢?就只需要把你的鼠标放在行号8上,点击一下8,你就发现8上面多了一个红色的小勾,并且当先行也会变红,这样你就成功设置了一个断点
二号图:

然后我按下F9,把这个程序编译一下,记住必须编译之后才能进行调试
三号图:

然后点击调试
四号图:

点击添加查看
五号图:

比如我要查看变量c的值
六号图:

你发现左边的框里出现了变量c
七号图:

现在点击调试
八号图:

现在点击调试
九号图:

接下来你输入两个整数,中间用空格分隔开,并且按下回车键
十号图:

你再回到我们的devcpp,点击下一步
十一号图:

看到了吧,现在机器执行完了第8行,停留在了第9行前面,左边的c的值也变为了13,这就是调试的好处,你可以一行一行执行,并且每次执行完,你左边的框里添加的要查看的变量的值就会跟着改变(当然,你要是没有对他的值进行改变,他就不变)
十二号图:

后面没有关键性的步骤,直接按跳过即可,那么我们的调试也就完成了

二、
我们还可以用调试来证明另一件事

十三号图:

假如我没有对变量a,b,c初始化为0,就像图中的情况,我只是定义了a,b,c三个变量,并没有对他们进行赋值,那么我们一会儿在程序运行过程中,他们的值会怎么样呢?

十四号图:

首先,我们在第八行前面设置一个break(断点),如何设置断点呢?你就在那个8那里点一下就行

十五号图:

我们此时还是按下F9对我们的程序进行一个编译

十六号图:

好的,我们没有warning(警告),也没有error(错误),非常nice

十七号图:

接下来我们还是点击我们的调试

十八,十九,二十号图:

我们点击添加查看,分别输入a,b,c

二十一号图:

然后产生上图的效果

二十二号图:

接下来点击调试

二十三号图:

没错又是我们的黑哥

二十四号图:

然后我们输入两个整数,比如5和6,中间空格隔开,然后回车
(我这里不知道为啥,好像得按两下回车才行,不知道是不是我这个代码输入那块是不是有点小bug)

二十五号图:

好,现在就出现了我们想看的东西,
1.左边的查看栏分别显示出了a,b,c三个变量的值,a和b很好理解,就是5和6,但是关键是c的值,你发现c的值为0,这说明什么?先往下看
2.我们发现我们的机器现在执行完了第7行,还未执行第8行
3.我现在来解释c为什么为0,我刚才说了机器已经执行完了第7行,就是说我们已经定义了整型变量c,但是并没有给这个变量c赋值(也就是初始化),那你想想c的值是不是一个任意的值?没错,c就应该是一个任意值,但是为什么这里c的值为0呢?那是因为devcpp把这个值赋赋为0了,如果说你用的是别的IDE(就是说用的环境不同),比如说是vscode,那这个c的值会是0还是一个任意的值呢?这里我可以告诉你,至少在win系统下的vscode里c的值还是0,因为我试过。那你又要问,那如果是在别的IDE下呢?
那我就不能这么确切的告诉你了,因为我没试过。
小结一下,这个没有从初始化的变量c的值是不确定的,在不同的电脑中,不同的IDE下,c的值是不确定的,只不过devcpp和vscode这两款IDE帮你把他初始化为0了,所以我这里建议以后若是需要初始化一个变量的值为0,不要等着编辑器去帮你初始化为0,最好自己手动给变量初始化为0

二十六号图:

当我们点击完下一步时,c的值就变为了11,没毛病。
接下来点击跳过,那么我们的调试就完成了。

总结一下,
第一,调试就是可以帮助我们在程序编译后或运行后出现错误,帮助我们查看变量的值的一个功能,当然这个过程你也完全可以手动转化为代码,人工调试,今天在这我就不说这种方法了,你也可以自己尝试着这么干
第二,定义变量时,你若需要让一个变量的值为0,请用你高贵的双手手动把=0加在后面,不要等着你的IDE帮你完成这项工作

posted @ 2020-04-28 22:54  叶家星  阅读(1009)  评论(0编辑  收藏  举报