| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1392 人关注过本帖
标题:呕心沥血两小时 终于弄的差不多了
只看楼主 加入收藏
qq418336855
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-8-11
收藏
得分:0 
回复 10楼 zklhp
   关键是一点都不懂的  只能自己这么瞎猜啊   其实这样也有好处  至少我更熟悉了那些符号在那
2012-08-11 15:36
jokerbat
Rank: 2
等 级:论坛游民
帖 子:77
专家分:91
注 册:2012-2-1
收藏
得分:0 
大牛很久以前就说过没有那金钢钻就别揽那瓷器活打好你的基础从 c开始打(用简单的代码测试理论)一般不超30条,
2012-08-11 16:05
信箱有效
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:9
帖 子:1102
专家分:4268
注 册:2012-6-19
收藏
得分:0 
在c码中,有main函数的3个局部变量。总结一下在堆栈中的形成及位置:

-4c开始40h个字节填0,使用19h个字节写入a数组

-CC开始40h个字节填0,并将19h个字节的a数组复制进来当作b数组

-8c开始2bh个字节被写入数组C。

-61开始15h个字节填0。


源码及实际执行时的形成顺序都是这样abc,但是在堆栈中的排列却是acb

b数组位于堆栈的上方,再上面就是作为printf函数的参数-DC -D8的栈顶了,这2个
位置一直是在被重复覆盖使用的。

大括号中的b数组为什么会处于栈的上方,或许真是因为大括号的作用,因为离栈顶越近,理论上越有可能被覆盖做它用,但是编译时已经把局部变量的空间大小考虑好了,所以似乎也不会出现别的局部变量占用的情况。。。。。。
另外还可以看到 C数组虽然没有被初始化为0,但是编译器最后还是将剩余的15h个字节的数组空间填0了。
。。。。。。 其实可以作为对比,再来几个,对照着分析一下,就能确定了。我是不弄啦,头晕。不过对于这段代码,虽然没有确定的看出大括号的作用,但是从这中间,我学到了很多东东。很勃大 很精深。
2012-08-11 16:08
qq418336855
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2012-8-11
收藏
得分:0 
回复 12楼 jokerbat
          都不懂、
2012-08-11 16:09
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用信箱有效在2012-8-11 16:08:40的发言:

在c码中,有main函数的3个局部变量。总结一下在堆栈中的形成及位置:

-4c开始40h个字节填0,使用19h个字节写入a数组

-CC开始40h个字节填0,并将19h个字节的a数组复制进来当作b数组

-8c开始2bh个字节被写入数组C。

-61开始15h个字节填0。


源码及实际执行时的形成顺序都是这样abc,但是在堆栈中的排列却是acb

b数组位于堆栈的上方,再上面就是作为printf函数的参数-DC -D8的栈顶了,这2个
位置一直是在被重复覆盖使用的。

大括号中的b数组为什么会处于栈的上方,或许真是因为大括号的作用,因为离栈顶越近,理论上越有可能被覆盖做它用,但是编译时已经把局部变量的空间大小考虑好了,所以似乎也不会出现别的局部变量占用的情况。。。。。。
另外还可以看到 C数组虽然没有被初始化为0,但是编译器最后还是将剩余的15h个字节的数组空间填0了。
。。。。。。 其实可以作为对比,再来几个,对照着分析一下,就能确定了。我是不弄啦,头晕。不过对于这段代码,虽然没有确定的看出大括号的作用,但是从这中间,我学到了很多东东。很勃大 很精深。

这样就兴奋了!

授人以渔,不授人以鱼。
2012-08-11 16:16
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
C 区大牛太多,现在都万能了。
2012-08-11 23:23
快速回复:呕心沥血两小时 终于弄的差不多了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019029 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved