当前位置: 首页 > news >正文

百度云网站建设教程视频重庆重庆网站建设公司

百度云网站建设教程视频,重庆重庆网站建设公司,简单的装x编程代码,做图赚钱的网站有哪些前言 #x1f388;个人主页:#x1f388; :✨✨✨初阶牛✨✨✨ #x1f43b;推荐专栏: #x1f354;#x1f35f;#x1f32f; c语言初阶 #x1f511;个人信条: #x1f335;知行合一 #x1f349;本篇简介::介绍c语言初阶的最后一篇.有关调试的重要性. 金句分享…前言 个人主页: :✨✨✨初阶牛✨✨✨ 推荐专栏: c语言初阶 个人信条: 知行合一 本篇简介::介绍c语言初阶的最后一篇.有关调试的重要性. 金句分享: ✨夜色难免黑凉前行必有曙光.✨ 目录前言程序猿们每天都在写bug?一、调试是什么?二、两个版本的介绍(Debug和Release)三、调试的快捷键四、调试窗口4.1 监视窗口(查看变量的值)4.2 自动窗口4.3 内存窗口五.编程常见的错误本篇是c语言初阶的最后一篇,加油!!!程序猿们每天都在写bug? bug是什么? 1947 年 9 月 9 日世界上的第一个“Bug”被发现. 日记: “1949 年 9 月 9 日我们晚上调试机器的时候开着的窗户没有纱窗机器闪烁的亮光几乎吸引来了世界上所有的虫子。果然机器故障了我们发现了一只被继电器拍死的飞蛾翅膀大约 4 英寸。” 格蕾丝·霍普Grace Hopper用发夹取出飞蛾把它粘在日志里并标注“First actual case of bug being found”找到了第一个 Bug。这件计算机史上的奇闻轶事使“Bug”作为计算机领域的专用词汇一直沿用至今。 下图是当时的日记图片: 现在的程序员依旧逃不出“Bug”的魔爪初学者可能大部分时间在写代码,只有少部分时间在找bug.但是大部分已经工作的程序猿,在工作的一天里20% 的时间是在写代码80% 的时间是在找 Bug。 讲个笑话: 如果你在一个技术岗位周围听到了一声崩溃的惨叫不要慌张,这可能是某个程序员找 Bug 找的崩溃了。如果一群程序员同时发出惨叫那可能是有人把电源线踢掉了。 一、调试是什么? 调试英语Debugging / Debug又称除错是发现和减少计算机程序或电子仪器设备中程序错误的一个过程。 简单来说,调试就是一个在找bug的过程. 一名优秀的程序员是一名出色的侦探。 如果bug的出现是犯罪,那么每一次调试都是尝试破案的过程. 一件事情的发生都是有迹可循的,顺着思路写代码出现了bug,这相当于犯罪的过程,逆流而上便是调试的工作,这便是寻找真相的过程. 二、两个版本的介绍(Debug和Release) Debug 通常称为调试版本它包含调试信息并且不作任何优化便于程序员调试程序。 Release 称为发布版本它往往是进行了各种优化使得程序在代码大小和运行速度上都是最优的以便用户很好地使用。 观察Debug区别和Release版本的区别: 测试代码: #include stdio.h int main() {printf(初阶牛,你好!!!\n);return 0; }当我们运行之后: 观察比较代码运行后形成的.exe文件在硬盘上存放所占字节大小. Debug版本: Release版本: 上述情况可以证明Release版本会对代码进行各种优化,使得代码大小变小. 而Debug版本要保存调试信息,相对占用大小要更大一点. 编译器进行了哪些优化呢? 当我们写出一个数组越界访问的代码时: #include stdio.h int main() {int i 0;int arr[5] { 0 };for (i 0; i 10; i)//越界访问{arr[i] i;printf(%d\n, i);}return 0; }Debug版本调试结果: Release版本调试结果: 不难发现,即使数组越界访问,在Release版本直接被优化掉了,并不会产生报错信息. 补充知识: 你用的是什么编译器? vs2019?或者vs2022? 其实这些准确来说不能成为编译器,vs称为IDE(集成开发环境) 编辑器编译器调试器 三、调试的快捷键 调试时,快捷键的使用可以大大提高我们的调试效率,所以熟练的使用快捷键是很有必要的. F5:启动调试 经常用来直接跳到下一个断点处。如果没有设置断点就会直接运行. F9:创建断点和取消断点 断点的重要作用可以在程序的任意位置设置断点。 这样就可以使得程序在想要的位置随意停止执行继而一步步执行下去。 F10:逐过程 通常用来处理一个过程一个过程可以是一次函数调用或者是一条语句。,主要用于跳过确定没有问题的函数,不需要进入函数内部一条条语句调试. F11:逐语句 就是每次都执行一条语句但是这个快捷键可以使我们的执行逻辑进入函数内部这是最常用的情况。 CTRL F5:开始执行不调试 如果你想让程序直接运行起来而不调试就可以直接使用。 四、调试窗口 4.1 监视窗口(查看变量的值) 按F11进入调试状态,单击调试选项卡,选择窗口命令,在子菜单中选择监视命令. 四个监视窗口都是一样的,随意选择一个即可. 在打开的监视的窗口中,可以输入想要观察的变量,十分方便,个人是很喜欢vs的调试环境的.推荐使用监视窗口观察变量. 请通过调试,观察变量的变化,找出代码出错的地方. 示例: 请用自定义函数的形式编程实现求s m! n! k! 其中m、n、k从键盘输入值均小于7。 #include stdio.h #define Max 7int Factorial(int m)//计算阶乘的函数 {int ret 0;while (m){ret * m;m--;}return ret; } int main() {int m 0, n 0, k 0;int s 0;//记录这三个阶乘的和printf(请分别输入m,n,k的值:\n);scanf(%d%d%d, m, n, k);if (m Max n Max k Max){sFactorial(m) Factorial(n) Factorial(k);//分别调用计算阶乘的函数printf(这三个数的阶乘之和是:%d, s);}else{printf(很抱歉,你输入的三个数中,有大于7的数.\n);}return 0; }答案: 出错原因:Factorial函数中,ret初始化为0,出现错误,应当初始化为1,因为0与任何数的乘积都为0; 通过监视窗口,不难发现,ret计算阶乘时值一直为0; 4.2 自动窗口 监视窗口,要求自己手动输入需要观察的变量. 自动窗口不需要自己输入观察的变量,会自动出现. 缺点是自动窗口中的变量会动态显示,只会显示当前正在操作涉及的部分变量,当进入一个函数时,函数外的变量就观察不到.并不推荐使用 4.3 内存窗口 在内存窗口中,可以输入想要观察的变量的内存地址,甚至可以细致到每一个字节. 当然,vs还提供了调用堆栈,“反汇编”,寄存器等多种类型的窗口方便调试,就不一 一介绍了,可以自己去试着调试,观察. 五.编程常见的错误 7.1 编译型错误 编译器会直接标红,例如: 语法错误, 中英文错误 括号不完整等 这类错误很好发现,也能很快的解决,并不是很复杂的错误.根据编程经验就可以解决. 语句后面忘记:分号 5.2 链接型错误 编译器会给出错误信息主要在代码中找到错误信息中的标识符。一般是标识符名不存在或者拼写错误。这也是不难解决的问题. 5.3 运行时错误 这是最难解决的的问题,只有在运行时,发现并不是自己想要的结果. 这类问题只能通过调试,一步步解决,当代码比较复杂时,一步步调试会显得特别繁琐,这时可以借助F9创建断点,和F10逐过程(不进入函数内部),跳过部分没有出问题的代码区域,即使是这样,这类问题还是很难得以解决. 遇见bug不要太难过,也不要过度生气,自己解决就行了,虽然bug的出现让人很头痛,可能几个小时都无法找到原因,但是我们通过调试,在破案的过程中,也许也会收获很多,成功破案后的喜悦也是很甜的哟!!! 希望各位小伙伴,可以多多尝试调试,这也是一种很重要的能力,提高自己的代码编程能力. 下面是一些可以试着练习调试的代码: 试着找出原因吧!!! 示例1:这段代码是在x86环境下运行 #include stdio.h int main() {int i 0;int arr[10] { 0 };for (i 0; i 12; i){arr[i] 0;printf(初阶牛加油,加油!!!\n);}return 0; }示例2:输入密码 #include stdio.h #define MAX 3 int main() {char arr1[] { 初阶牛666 };char arr2[20];printf(请输入密码:\n);int iMAX;while(i){printf(你还有%d次机会:,i);scanf(%s, arr2);if (arr1arr2){printf(密码成功);break;}else printf(密码错误,请重新输入:\n);i--;//机会-1}if(i0)//如果机会用完了printf(\n很遗憾你的机会用完了);return 0; }答案: 示例1; 当i12时,令arr[12]0,此时i的地址和arr[12]的地址是同一块空间,会将i赋值为0 至于为什么是12,是由编译器决定的. 示例2: 错误:比较两个字符串不能使用,调试会发现即使密码输入正确,依旧会显示错误. 解决方法: if (arr1arr2) 改成if (strcmp(arr1, arr2)0) 补充小知识: strcmp是c语言提供的一种库函数,用于比较两个字符串 此函数开始比较每个字符串的第一个字符。如果它们彼此相等则继续以下对直到字符不同或达到终止空字符。 返回值.小于0第一个不匹配的字符在 str1 中的值低于 str2 中的值0两个字符串的内容相等大于0第一个不匹配的字符在 str1 中的值大于在 str2 中的值 代码如下 #include stdio.h #include string.h #define MAX 3 int main() {char arr1[] { 初阶牛666 };char arr2[20];printf(请输入密码:\n);int iMAX;while(i){printf(你还有%d次机会:,i);scanf(%s, arr2);if (strcmp(arr1, arr2)0)//判断字符串相等{printf(密码成功);break;}else printf(密码错误,请重新输入:\n);i--;//机会-1}if(i0)//如果机会用完了printf(\n很遗憾你的机会用完了);return 0; }到目前为止,c语言初阶的内容就全部更新完成了,感谢大家的支持!!! 后面就是c语言进阶的内容了.
http://www.tj-hxxt.cn/news/224915.html

相关文章:

  • 辽宁网站建设熊掌号自助建站免费信息发布网站
  • 网站建设捌金手指花总十七本地黄页小程序
  • 国际互联网网站高端网站建设设计公司排名
  • 甘肃手机版建站系统哪个好做视频网站用什么模板
  • 买国外域名 网站高端网站建设郑州
  • 网站设计价格大概多少营销网站建设联系方式
  • 21天网站建设实录pdf上海互联网seo公司
  • 设计院门户网站建设方案网站新闻对百度优化有用吗
  • 宽屏大气网站模板杭州 网站制作
  • 深圳建设资格注册中心网站WordPress手机不显示
  • 网站建设验收单格式手机php网站开发工具
  • 鞍钢节能公司网站开发设计开发网站
  • 琼海网站建设长治建立公司网站的步骤
  • 辽宁pc网站建设开发徐州制作手机网站
  • 宁波公司网站开发招聘免费建网站哪家好
  • 免费自助建站哪个网站最好企业管理培训课程安排
  • 郑州做定制网站的公司如何建立网站快捷
  • 做视频网站收费侵权吗django 网站开发视频教程
  • 个人网站搭建wordpress网站分析与优化
  • 久久网站建设专业网站建设公司兴田德润优惠吗
  • 顺德网站优化wordpress嵌入代码
  • 广告在什么网站做设计广告图用什么软件好用
  • 汽车网站建设网上海网站推广行业需求
  • 黄埭做网站团队建设优缺点
  • 用vis做的简单网站个人建站免费服务器
  • 网站建设项目补充协议石墨网站开发
  • 用 htmi5做网站网站查不到备案
  • 口碑好的镇江网站建设图标怎么在wordpress
  • 收钱码合并的网站怎么做在线作图网
  • 网站后台数据处理编辑主要是做什么的啊网上怎么自己做网站