引入:

在编写程序的过程中,难免会出现各种错误。例如漏加;,变量没有申明等等,这些是常见的语法错误。编译器会在下方报错

这种情况,按照编译器给出的提示做出对应修改即可。

然而在很多时候 ,会有不可避免的逻辑错误。通常,编译器不会报错,因为你的语法是正确的,计算机又不知道你编写这段代码的目的是什么,所以程序正常运行后,结果与预期不限符合。这时候,我们会去寻找逻辑漏洞。

首先我们可能会在大脑中将程序跑一遍,然后你可能会发现逻辑问题。然而,当逻辑关系相对复杂,程序运行步骤较多时,你会手足无措。也许你觉得我逻辑一点也没错啊,可为什么结果就是不对呢?

于是就有了调试(Dubug)。

调试分为动态调试(Dynamic debugging)和静态调试(static debugging)。

调试界面介绍:

打开我们的Dev-C++

先将下方一栏选项选到调试

接着上方选择Dubug(原来默认为Release)。Release是程序编写完成后,用户使用时的界面选项。而想要调试程序,则选择Dubug。

动态调试介绍:

随机输入五个数,找出其中最大的数

我们编译过了,但是运行结果却是如此:

明显逻辑出错了,我们开始调试。

首先要打断点:在程序左侧一栏点击一下,就成功进行了断点

然后点击下方的调试,调试就开始进行了。

点击下一步,程序就从断点处开始向下运行,并跳出窗口。

当遇到scanf,在窗口输入。

遇到循环,蓝框会在循环语句内循环,直到循环结束。

遇到printf,会输出。

光这样当然看不出什么,我们还要添加查看,查看当前变量的值。

如此,我们可以动态地看变量当前的值。

对于以上程序,我们在调试时发现,max的值始终时-9999,并没有记录到当前最大值。将

arr[i] = max改为max = arr[i]即可

又发现,程序只循环四次,并不是想要的输入五个数。将i < 5改为i <= 5即可。

修改正确,达到目的。

而当我们设置两个断点,程序就只会调试两个断点之间的代码

静态调试: 

静态调试,就是自己手动调试。

将程序当前变量值输出出来

还是上面这个例子

我们在循环内部输出max的值,每次循环都会输出一遍

每次循环,max都输出-9999,从而找出来问题所在。

C语言调试(Dev-C++)(初步)相关推荐

  1. HarmonyOS之JS/Java跨语言调试

    在 HarmonyOS 应用开发中,通常会涉及到使用 JS 和 Java 语言同时开发的场景,一般使用 JS 来开发应用的 UI,使用 Java 开发应用的逻辑,JS FA 调用 Java PA.针对 ...

  2. c语言调试出错误怎么改,C语言调试常见错误及修改方法(附习题)

    <C语言调试常见错误及修改方法(附习题)>由会员分享,可在线阅读,更多相关<C语言调试常见错误及修改方法(附习题)(12页珍藏版)>请在人人文库网上搜索. 1.1.调试C程序时 ...

  3. GDAL库调试(包括跨语言调试)

    很多时候都需要调试GDAL库,尤其是像学习GDAL库中的某些算法是如何实现的时候,调试就必不可少了. 首先说明用C++的调试.以VS2008为例进行说明. 编译DEBUG版本的GDAL库,这个可以参考 ...

  4. c语言程序0xc0000005解决方案,C语言调试时出现”Unhandled exception 0xC0000005;Access Violation“,是怎么回事呢?...

    已结贴√ 问题点数:20 回复次数:7 C语言调试时出现"Unhandled exception 0xC0000005;Access Violation",是怎么回事呢? 语法没错 ...

  5. c语言debug执行错误,C语言调试出错 0xC0000005: Access Violation.

    C语言调试出错 0xC0000005: Access Violation.0 高手帮忙看看,自学没人教态痛苦了,出点什么错误自己要看好半天. 好像是input函数下姓名互换的问题.帮我改正,谢了.不要 ...

  6. C语言调试教程总结(以visual studio和Dev C++为例)

    文章目录 一.前言 二.调试的概念以及调试器的选择 调试器(Debugger) 1) Remote Debugger 2) WinDbg 3) LLDB 4) GDB 三.设置断点,开始调试 断点的真 ...

  7. C/C++程序的断点调试 - Dev C++

    本文以Dev C++ 5.11为例,简述C/C++程序断点调试的基本方法和过程.其它的IDE环境,大同小异. 本文引用自作者编写的下述图书; 本文允许以个人学习.教学等目的引用.讲授或转载,但需要注明 ...

  8. keil uvision2 c语言调试,keil uvision2

    keil uvision2是款优秀的单片机开发工具,采用接近于c语言的语法来开发,功能全面,提供了源代码.功能导航器.模板编辑等功能,为开发者们提高了工作效率和项目开发周期,软件还能嵌入汇编,用户可在 ...

  9. c语言调试过程中的错误,C语言调试过程中duplicate symbol错误分析

    说明:在我们调试C语言的过程中,经常会遇到duplicate symbol错误(在Mac平台下利用Xcode集成开发环境).如下图: 一.简单分析一下C语言程序的开发步骤. 由上图我们可以看出C语言由 ...

最新文章

  1. AAAI2018正式落幕 13个世界顶尖AI教授都讲了啥?
  2. android.os.BinderProxy cannot be cast to
  3. 论文学习1-DeepPath: A Reinforcement Learning Method for Knowledge Graph Reasoning
  4. wps linux 在线安装程序,WPS Office 2019 For Linux下载及安装教程
  5. adb安装apk程序
  6. android删除cache文件夹,Android开发之删除项目缓存的方法
  7. 《筱静观察》2019开机仪式暨战略合作签约仪式在北京创新社成功举办
  8. 2018第五届“云鼎奖”申报启动
  9. 40款用于简洁网页设计的光滑英文字体【上】
  10. 为fetch添加拦截器功能
  11. 随机过程之一——关于条件数学期望
  12. Go语言IDE GoLand的BUG
  13. C++综合项目-boost搜索引擎
  14. 【工具】Vscode翻译插件推荐(不用谷歌翻译api、支持短句英汉互译、支持查词、支持自动补全、不需要浏览器)
  15. ArcGIS平滑处理
  16. linux emule 编译 wx-config --libs,如何编译 eMule v0.46b
  17. (八)活动目录:域控DC和DNS分离搭建过程
  18. npm yarn 包管理机制
  19. mac上好用的菜单栏管理工具Bartender 4
  20. iOS GIF合成有透明通道图片重叠问题

热门文章

  1. cc共享许可协议_如何以及为何使用知识共享许可的作品
  2. win10 内存清理
  3. HTML5期末大作业:美食网页主题网站设计与实现——HTML+CSS+JavaScript月饼美食食品企业网站html模板9页面
  4. java实现附件预览(openoffice+swftools+flexpaper)
  5. 360安全卫士大战“病毒之王”——最新磁碟机变种
  6. 企业——nginx的图片压缩、https模块、重写规则、盗链
  7. Redis(二)——复制
  8. 苹果电脑ntfs如何打开硬盘?mac能读取的硬盘格式
  9. extjs google统计图
  10. LeetCode 149 直线上最多的点数