0
点赞
收藏
分享

微信扫一扫

MySQL数据库——DML基本操作


在这里插入图片描述

🎬 鸽芷咕:个人主页

 🔥 个人专栏:《C语言初阶篇》 《C语言进阶篇》

⛺️生活的理想,就是为了理想的生活!

文章目录

📋 前言

🔥 注:前一篇文章在这里《高效调试手段与技巧(中)》

💬 一些调试的实例

💭 实例一

📚 代码演示:

#include <stdio.h>
int main()
{
	int i = 0;
	int sum = 0;//保存最终结果
	int n = 0;
	int ret = 1;//保存n的阶乘
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		int j = 0;
		for (j = 1; j <= i; j++)
		{
			ret *= j;
		}
		sum += ret;
	}
	printf("%d\n", sum);
	return 0;
}

📑 代码结果:
在这里插入图片描述

📺 调试演示

在这里插入图片描述
这里我们通过调试就可以看到,我们的循环在第三次的时候就出现错误了。本来 ret 里面存储的是 3 的阶乘 9 可结果却是 12

  • 这里可以得出我们程序的错误了
  • ret 这个变量未初始化导致结果与预想不同

📚 代码改进:
在这里插入图片描述

💭 实例二(nice公司的笔试题)

在这里插入图片描述

🔥 注:由于nice公司的笔试题,是在linux环境下的,所以博主对代码做了一个调整让他可以在Windows 环境下运行。

📚 代码演示:

#include <stdio.h>
int main()
{
    int i = 0;
    int arr[10] = { 0 };
    for (i = 0; i <= 12; i++)
    {
        arr[i] = 0;
        printf("hehe\n");
    }
    return 0;
}

📑 代码结果:

在这里插入图片描述
这里就可以看到我们在死循环的打印hehe!

✒️ 深度解析为什么会死循环 (nice公司的笔试题)

🔥 注:栈区的讲解在《C/C++的内存分布》有过详细讲解大家可以去看看!

💻 观察内存

在这里插入图片描述
这里就可以看到我们临时变量 arri 在内存 栈区中地区是这样存储的!当我们循环第13次时 arr[13] 越界!

  • 就会找到我们临时变量 i 的地址值处从而
  • 改为 0 开始无限循环

在这里插入图片描述
🔥 总结:所以我们在使用数组时一定要注意数组越界这个问题,不然就会引发bug。

💬如何写出好(易于调试)的代码

💭 优秀的代码:

  • 代码运行正常
  • bug很少
  • 效率高
  • 可读性高
  • 可维护性高
  • 注释清晰
  • 文档齐全

💬编程常见的错误

💭 编程常见的错误:

在这里插入图片描述

💭 编译型错误

💭 链接型错误

在这里插入图片描述

💭 运行时错误

在这里插入图片描述

📝全篇总结

✅ 归纳:
☁️ 好了以上就是关于调试给大家演示的调试实例,大家看完了也要用起来啊!只有用起来才知道自己掌握了没!
看到这里了还不给博主扣个:
⛳️ 点赞☀️收藏 ⭐️ 关注

💛 💙 💜 ❤️ 💚💓 💗 💕 💞 💘 💖
拜托拜托这个真的很重要!
你们的点赞就是博主更新最大的动力!
有问题可以评论或者私信呢秒回哦。
在这里插入图片描述

举报

相关推荐

0 条评论