步步高点读机t1价格:c语言问题

来源:百度文库 编辑:高考问答 时间:2024/05/11 05:41:18
若有以下说明和语句,, 则p1-p2的值为多少??(单选)

int a[10], *p1, *p2;
p1=a;
p2=&a[5];

A. 5 B. 6 C. 10 D. 没有指针与指针的减法
为什么!!!

A,指针相减就是地址相减,数组的地址是连续分配的,所以是5

答案应该是A吧,指针指向数组时,该指针可以加减整型量的。其实是数组中两个元素的地址值进行加减。

D

没一个对的
p1+5==p2
所以应该是p1-p2=-5,答案里没有-5

-5
如果你写个程序输出p1-p2会输出-5。因为数组地址是连续分配的,且低地址在前,高地址在后。减出来是-5说明p2比p1大5*sizeof(int)。