标题:实验室的面试问题:求神人解答!!!谢谢!!!
只看楼主
qq393825817
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2011-11-10
得分:0 
   各位大神我还是没有弄懂为啥I会得到A[2]的值呢?能不能详细说一下呢。。
     这不是研究编译器的实验室,是一个3G手机实验室。。   
     
2012-04-15 15:45
qq393825817
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2011-11-10
得分:0 
回复 3楼 wuya156
能不能详细说一下呢?  谢谢!!!
2012-04-15 15:54
小跳蚤
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:1
帖 子:437
专家分:1623
注 册:2011-4-9
得分:1 
求解
2012-04-15 18:14
wuya156
Rank: 2
等 级:论坛游民
帖 子:29
专家分:38
注 册:2010-3-11
得分:0 
回复 3楼 wuya156
晕,我小屁孩一个
2012-04-18 21:48
wuya156
Rank: 2
等 级:论坛游民
帖 子:29
专家分:38
注 册:2010-3-11
得分:0 
回复 12楼 qq393825817
这样的,数组是下标大的先入栈(先出栈),也就是在栈底,是高地址
vc中会按照声明的顺序入栈,其它编译器可能会有不同入栈顺序,自己写个测试一下就行
2012-04-18 22:00
S_Ringo
Rank: 4
来 自:歌舞伎町
等 级:业余侠客
帖 子:94
专家分:230
注 册:2012-4-15
得分:0 
写了个测试,赞同LS……
不知道这样测试行不行哦?
int i,a[2];
long d1,d2;
d1=(long)(&i);
d2=(long)(a+2);
if(d1==d2)
{
printf("same\n");
}
……
输出的是“same”
后来第一句改为int i,j,a[2];
d2改为d2=(long)(a+3);
依然输出“same”
……
学习了……
2012-04-18 23:49



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-365803-1-1.html




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

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