荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: bakey (sbb的猪), 信区: Program
标 题: [合集]经常来潜水,觉得冷清,发起每日一问(C语言)
发信站: 荔园晨风BBS站 (2005年11月29日16:12:28 星期二), 站内信件
☆ 1 ──────────── 我是分割线 ─────────────────☆
发信人: puppygao (SHUBER), 信区: Program
标 题: 经常来潜水,觉得冷清,发起每日一问(C语言)
时 间: Sat Nov 26 20:50:40 2005
以下代码的输出结果是什么?
[code]void main()
{
int array[5],i *p;
for(i=0;i<5;i++)
{
array [i] = i
}
p = array;
printf("%d\n",*(p+3*sizeof(int)));
}[/code]
2分钟给不出答案的可以去测试一下:)
--
※ 来源:.荔园晨风BBS站 http://bbs.szu.edu.cn [FROM: 202.105.152.210]
※ 修改:.puppygao 於 Nov 26 21:08:12 2005 修改本文.[FROM: 202.105.152.210]
※ 修改:.puppygao 於 Nov 26 21:13:01 2005 修改本文.[FROM: 202.105.152.210]
☆ 2 ──────────── 我是分割线 ─────────────────☆
发信人: bakey (sbb的猪), 信区: Program
标 题: Re: 经常来潜水,觉得冷清,发起每日一问(C语言)
时 间: 2005年11月26日21:16:24 星期六
ft,还以为是什么高深的语法...
☆ 3 ──────────── 我是分割线 ─────────────────☆
发信人: puppygao (SHUBER), 信区: Program
标 题: Re: 经常来潜水,觉得冷清,发起每日一问(C语言)
时 间: Sat Nov 26 21:22:09 2005
慢慢来嘛,不积跬步,无以至千里。
☆ 4 ──────────── 我是分割线 ─────────────────☆
发信人: bakey (sbb的猪), 信区: Program
标 题: Re: 经常来潜水,觉得冷清,发起每日一问(C语言)
时 间: 2005年11月26日21:33:40 星期六
这个程序没什么特别啊...
☆ 5 ──────────── 我是分割线 ─────────────────☆
发信人: huhaiming (一生只爱她), 信区: Program
标 题: Re: 经常来潜水,觉得冷清,发起每日一问(C语言)
时 间: 2005年11月26日21:58:42 星期六
编译错误
☆ 6 ──────────── 我是分割线 ─────────────────☆
发信人: John (处女座的男人), 信区: Program
标 题: Re: 经常来潜水,觉得冷清,发起每日一问(C语言)
时 间: 2005年11月26日22:32:50 星期六
结果等于多少?4?
☆ 7 ──────────── 我是分割线 ─────────────────☆
发信人: bso (meteor), 信区: Program
标 题: Re: 经常来潜水,觉得冷清,发起每日一问(C语言)
时 间: Sat Nov 26 23:28:24 2005
Turbo C 2.0得到285
Turbo C ++ 3.0得到344
Dev C++ 得到1
VC++ 6.0得到2147299328
几位大佬能解释一下吗?
--
meteor
梦想农庄音乐站
http://192.168.117.111
音乐模式:http://192.168.117.111/music.htm
星动BT站(每天更新哦)
http://192.168.117.111/plus_bt.asp
※ 来源:.荔园晨风BBS站 http://bbs.szu.edu.cn [FROM: 192.168.117.111]
※ 修改:.bso 於 Nov 26 23:38:24 2005 修改本文.[FROM: 192.168.117.111]
☆ 8 ──────────── 我是分割线 ─────────────────☆
发信人: bakey (sbb的猪), 信区: Program
标 题: Re: 经常来潜水,觉得冷清,发起每日一问(C语言)
时 间: 2005年11月27日21:40:34 星期天
我感觉就是一个随机的数,指针不知道指到哪里去了
☆ 9 ──────────── 我是分割线 ─────────────────☆
发信人: huhaiming (一生只爱她), 信区: Program
标 题: Re: 经常来潜水,觉得冷清,发起每日一问(C语言)
时 间: 2005年11月28日12:49:50 星期一
jjk,我授权你解释一下
☆ 10 ──────────── 我是分割线 ─────────────────☆
发信人: jjksam (VOIP engineer), 信区: Program
标 题: Re: 经常来潜水,觉得冷清,发起每日一问(C语言)
时 间: 2005年11月28日13:04:37 星期一
好,因为是你的rpwt
☆ 11 ──────────── 我是分割线 ─────────────────☆
发信人: jjksam (VOIP engineer), 信区: Program
标 题: Re: 经常来潜水,觉得冷清,发起每日一问(C语言)
时 间: 2005年11月28日13:06:26 星期一
你的是什么程序...编译不了.
程序中数组越界,值不能确定.
C语言是不会检查数组和指针的边界的.
☆ 12 ──────────── 我是分割线 ─────────────────☆
发信人: bakey (sbb的猪), 信区: Program
标 题: Re: 经常来潜水,觉得冷清,发起每日一问(C语言)
时 间: 2005年11月28日14:41:11 星期一
^_^
☆ 13 ──────────── 我是分割线 ─────────────────☆
发信人: blackhawk (blackhawk), 信区: Program
标 题: Re: 经常来潜水,觉得冷清,发起每日一问(C语言)
时 间: Mon Nov 28 16:45:24 2005
如果我没弄错的话,你的本意是访问array的第四个整数?那结果本来应该是3
但是为什么不对呢?且在不同的编译器中值也不同?
原因在于你没弄清楚p是什么类型的指针?p是int型的,所以p+3*sizeof(int)在32位编译器
中,是指向p后面第12个整数(注意!!!),那么在vc里面,*p=*(array+偏移48个字节)+
(*(array+偏移49))*256+
(*(array+偏移50个)*256*256+(*(array+偏移51)*256*256*256
ps:一般通常的编译器是低地址放低字节,高放高。
所以问题就清楚了,你现在得到的这个值是随机数。
第二个问题:为什么得到的值不同?
这是因为不同的编译器对int的解释是不一样的,16位的是2个字节,32位的是4个字节,和l
ong是一致的。
我手头没有tc等等,只有vc.就vc解释下值为什么是那么大,这是因为指针指向的数据
值是随机数,而int 是
-2147483648~2147483647,所以。。。。。
可编译的代码:
#include <stdio.h>
void main()
{
int array[5],i, *p;
for(i=0;i<5;i++)
{
array [i] = i ;
}
p = array;
printf("%d\n",*(p+3*sizeof(int)));
p=NULL;
}
--
※ 来源:.荔园晨风BBS站 http://bbs.szu.edu.cn [FROM: 192.168.100.226]
※ 修改:.blackhawk 於 Nov 28 16:53:33 2005 修改本文.[FROM: 192.168.100.226]
☆ 14 ──────────── 我是分割线 ─────────────────☆
发信人: bakey (sbb的猪), 信区: Program
标 题: Re: 经常来潜水,觉得冷清,发起每日一问(C语言)
时 间: 2005年11月28日17:49:36 星期一
对喔,tc的int是16位的
☆ 15 ──────────── 我是分割线 ─────────────────☆
发信人: FineBoy (FineBoy), 信区: Program
标 题: Re: 经常来潜水,觉得冷清,发起每日一问(C语言)
时 间: 2005年11月29日08:41:48 星期二
编译应该没错,运行错误。
☆ 16 ──────────── 我是分割线 ─────────────────☆
发信人: FineBoy (FineBoy), 信区: Program
标 题: Re: 经常来潜水,觉得冷清,发起每日一问(C语言)
时 间: 2005年11月29日08:48:18 星期二
注意!!!数组从零开始,所以这里是第13个整数!!
☆ 17 ──────────── 我是分割线 ─────────────────☆
发信人: blackhawk (blackhawk), 信区: Program
标 题: Re: 经常来潜水,觉得冷清,发起每日一问(C语言)
时 间: Tue Nov 29 12:32:21 2005
我说的是p后面第12个整数。
[color=blue]: 注意!!!数组从零开始,所以这里是第13个整数!![/color]
--
※ 来源:.荔园晨风BBS站 http://bbs.szu.edu.cn [FROM: 192.168.100.226]
※ 修改:.blackhawk 於 Nov 29 12:47:41 2005 修改本文.[FROM: 192.168.100.226]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店