
|
作者: 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号