前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于我遇到的值得注意的错误点

关于我遇到的值得注意的错误点

作者头像
薛定谔方程难
发布2024-01-23 16:11:24
930
发布2024-01-23 16:11:24
举报
文章被收录于专栏:我的C语言我的C语言

忍耐是痛的,但是它的结果是甜蜜的。——卢梭

1、无意间看到有趣代码

这是我在生活中看到别人犯过的错误,我觉得其实这种错误,如果没有经历过,一定不会发现他的错误。 请看下面的代码:

代码语言:javascript
复制
#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,那到底是为什么呢?

2、在VS2022,X86,Debug的环境下,调试

我们可以进一步的调试,判断i创建的位置,并且观察arr创建的位置。在观察的同时,我们要注意一下。 1、栈区内存的使用习惯是从高地址向低地址使用,所以i先创建,就会比arr整体的数组地址高 2、数组在内存中的存放是,随着下标的增长,地址是由高到低的。也就是下面所给的图片所表达的样子 3、值得注意的是,在不同的编译器下,arr和i之间的空格可能不只是2个整型字节,这种情况下,只是刚刚巧合。

在这里插入图片描述
在这里插入图片描述

3、总结

所以,一些意想不到的错误,只有在调试的情况下才能够展示出来,所以调试是很重要的。就比如,医生给病人看病,需要做B超,CT一样,有着不可替代的重要性。

4、拓展

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这些有助于我们更好的理解。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、无意间看到有趣代码
  • 2、在VS2022,X86,Debug的环境下,调试
  • 3、总结
  • 4、拓展
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档