|
![]() | 作者: 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号