指针运算:int *p1, *p2; int value;
p1 = (int *)0x500; p2 = (int *) 0x518; value = p2-p1;问:value的值?
A 8 B 4 C 2 D 6
并请解释为什么
答案:D
指针减法运算规则:地址数值之差除以指针类型的长度。
p2 - p1 的差值为0x18,换成十进制就是24,再除以int的长度4,结果就是6.
指针减法运算规则:地址数值之差除以指针类型的长度。
p2 - p1 的差值为0x18,换成十进制就是24,再除以int的长度4,结果就是6.
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-09-03
0x表示是十六进制,程序中给两个指针赋予了两个地址值,
两个地址值的差为 0x18 转换成十进制也就是 24
如果int是用4个字节表示的,则这个题 答案为 6 也就是 24/4
两个地址值的差为 0x18 转换成十进制也就是 24
如果int是用4个字节表示的,则这个题 答案为 6 也就是 24/4
第2个回答 2011-09-03
D 24/int的宽度 int是4子字节