论坛: 编程破解 标题: 谁能告诉我答案呢? 复制本贴地址    
作者: fatcat [xu09]    论坛用户   登录
#include "stdio.h"
main()
{int a=10;
 int *p=&a;
printf("%x",p);
printf("%x",p+9);
}
若程序第一次输出结果为194,则第二个printf语句输出多少?

地主 发表时间: 05/13 16:00

回复: god__devil [god__devil]   论坛用户   登录
1AD

B1层 发表时间: 05/14 01:06

回复: 山鸡 [duck_chen]   论坛用户   登录
不是1AD是19D

B2层 发表时间: 05/14 01:28

回复: fatcat [xu09]   论坛用户   登录
都错了啊~~~~
请大家注意它的算法。

B3层 发表时间: 05/14 07:07

回复: cash [cash]   论坛用户   登录
#include "stdio.h"
main()
{int a=10;
 int *p=&a;
printf("%x",p);
printf("%x",p+9);
}
如果单算P+9的话那么那么p应该为19D,但你这里的P到底指向是什么啊。*p=&a这句总不能说是*p指向的是a的地址吧。


B4层 发表时间: 05/14 16:06

回复: cash [cash]   论坛用户   登录
1A6

B5层 发表时间: 05/15 08:39

回复: cash [cash]   论坛用户   登录
可是对于*p=&a来说只有当a为数组时才可以啊。。你这里的a不是啊

B6层 发表时间: 05/15 10:32

回复: fatcat [xu09]   论坛用户   登录
嗯・答案是正确的,
可能是我写的出路吧。
应该事先说明一下a是一个有十个元素的数组才是。呵~~~~
谢老兄的指教!
这个是关于指针远算的一个题目,我们老师上课的时候用这题来考我们,
害我们都让他蒙了啊。。。。。



B7层 发表时间: 05/15 14:03

回复: dizi0774 [dizi0774]   论坛用户   登录
1a6.
p已指向整形a的地址,int形每个占两个字节,p加9即在原地址(194)的基础上加上9*2个字节。194+18=1a6。

B8层 发表时间: 05/15 14:22

回复: top [top]   论坛用户   登录
又学到了东西!

B9层 发表时间: 05/16 12:47

回复: god__devil [god__devil]   论坛用户   登录
但是不同的C里的INT的大小不一样啊!

B10层 发表时间: 05/30 18:31

回复: icesky [icesky]   论坛用户   登录
不是不同的c,而是不同的编译器...

B11层 发表时间: 05/30 18:46

回复: zby_cool [zby_cool]   论坛用户   登录
fatcat 你自己去编译运行一下吧!这答案我认为是1A6

B12层 发表时间: 05/31 00:42

论坛: 编程破解

20CN网络安全小组版权所有
Copyright © 2000-2010 20CN Security Group. All Rights Reserved.
论坛程序编写:NetDemon

粤ICP备05087286号