C语言调试(Dev-C++)(初步)
引入:
在编写程序的过程中,难免会出现各种错误。例如漏加;,变量没有申明等等,这些是常见的语法错误。编译器会在下方报错
这种情况,按照编译器给出的提示做出对应修改即可。
然而在很多时候 ,会有不可避免的逻辑错误。通常,编译器不会报错,因为你的语法是正确的,计算机又不知道你编写这段代码的目的是什么,所以程序正常运行后,结果与预期不限符合。这时候,我们会去寻找逻辑漏洞。
首先我们可能会在大脑中将程序跑一遍,然后你可能会发现逻辑问题。然而,当逻辑关系相对复杂,程序运行步骤较多时,你会手足无措。也许你觉得我逻辑一点也没错啊,可为什么结果就是不对呢?
于是就有了调试(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++)(初步)相关推荐
- HarmonyOS之JS/Java跨语言调试
在 HarmonyOS 应用开发中,通常会涉及到使用 JS 和 Java 语言同时开发的场景,一般使用 JS 来开发应用的 UI,使用 Java 开发应用的逻辑,JS FA 调用 Java PA.针对 ...
- c语言调试出错误怎么改,C语言调试常见错误及修改方法(附习题)
<C语言调试常见错误及修改方法(附习题)>由会员分享,可在线阅读,更多相关<C语言调试常见错误及修改方法(附习题)(12页珍藏版)>请在人人文库网上搜索. 1.1.调试C程序时 ...
- GDAL库调试(包括跨语言调试)
很多时候都需要调试GDAL库,尤其是像学习GDAL库中的某些算法是如何实现的时候,调试就必不可少了. 首先说明用C++的调试.以VS2008为例进行说明. 编译DEBUG版本的GDAL库,这个可以参考 ...
- c语言程序0xc0000005解决方案,C语言调试时出现”Unhandled exception 0xC0000005;Access Violation“,是怎么回事呢?...
已结贴√ 问题点数:20 回复次数:7 C语言调试时出现"Unhandled exception 0xC0000005;Access Violation",是怎么回事呢? 语法没错 ...
- c语言debug执行错误,C语言调试出错 0xC0000005: Access Violation.
C语言调试出错 0xC0000005: Access Violation.0 高手帮忙看看,自学没人教态痛苦了,出点什么错误自己要看好半天. 好像是input函数下姓名互换的问题.帮我改正,谢了.不要 ...
- C语言调试教程总结(以visual studio和Dev C++为例)
文章目录 一.前言 二.调试的概念以及调试器的选择 调试器(Debugger) 1) Remote Debugger 2) WinDbg 3) LLDB 4) GDB 三.设置断点,开始调试 断点的真 ...
- C/C++程序的断点调试 - Dev C++
本文以Dev C++ 5.11为例,简述C/C++程序断点调试的基本方法和过程.其它的IDE环境,大同小异. 本文引用自作者编写的下述图书; 本文允许以个人学习.教学等目的引用.讲授或转载,但需要注明 ...
- keil uvision2 c语言调试,keil uvision2
keil uvision2是款优秀的单片机开发工具,采用接近于c语言的语法来开发,功能全面,提供了源代码.功能导航器.模板编辑等功能,为开发者们提高了工作效率和项目开发周期,软件还能嵌入汇编,用户可在 ...
- c语言调试过程中的错误,C语言调试过程中duplicate symbol错误分析
说明:在我们调试C语言的过程中,经常会遇到duplicate symbol错误(在Mac平台下利用Xcode集成开发环境).如下图: 一.简单分析一下C语言程序的开发步骤. 由上图我们可以看出C语言由 ...
最新文章
- AAAI2018正式落幕 13个世界顶尖AI教授都讲了啥?
- android.os.BinderProxy cannot be cast to
- 论文学习1-DeepPath: A Reinforcement Learning Method for Knowledge Graph Reasoning
- wps linux 在线安装程序,WPS Office 2019 For Linux下载及安装教程
- adb安装apk程序
- android删除cache文件夹,Android开发之删除项目缓存的方法
- 《筱静观察》2019开机仪式暨战略合作签约仪式在北京创新社成功举办
- 2018第五届“云鼎奖”申报启动
- 40款用于简洁网页设计的光滑英文字体【上】
- 为fetch添加拦截器功能
- 随机过程之一——关于条件数学期望
- Go语言IDE GoLand的BUG
- C++综合项目-boost搜索引擎
- 【工具】Vscode翻译插件推荐(不用谷歌翻译api、支持短句英汉互译、支持查词、支持自动补全、不需要浏览器)
- ArcGIS平滑处理
- linux emule 编译 wx-config --libs,如何编译 eMule v0.46b
- (八)活动目录:域控DC和DNS分离搭建过程
- npm yarn 包管理机制
- mac上好用的菜单栏管理工具Bartender 4
- iOS GIF合成有透明通道图片重叠问题
热门文章
- cc共享许可协议_如何以及为何使用知识共享许可的作品
- win10 内存清理
- HTML5期末大作业:美食网页主题网站设计与实现——HTML+CSS+JavaScript月饼美食食品企业网站html模板9页面
- java实现附件预览(openoffice+swftools+flexpaper)
- 360安全卫士大战“病毒之王”——最新磁碟机变种
- 企业——nginx的图片压缩、https模块、重写规则、盗链
- Redis(二)——复制
- 苹果电脑ntfs如何打开硬盘?mac能读取的硬盘格式
- extjs google统计图
- LeetCode 149 直线上最多的点数