求大神解释一下这道题,下面程序输出数组中最大值,由s指针指向该元素

下面程序输出数组中的最大值,由s 指针指向该元素.
void main()
{ int a[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;
for(p=a, s=a;p-a<10; p++)
if(【 】)s=p;
printf("The max:%d",*s):
}
则在if 语句中的判断表达式应该是 B 。
A. p>s B. *p>*s C. a[p]>a[s] D. p-a>p-s

有大神可以解释一下这道题吗,还有一个p-a是什么意思是啊?求解..

p=a,s=a初始化,p和s都指向a[0]
p-a<10;就是p<a+10;结合初始化条件,就是指针p扫描10个数。
if(*p>*s)就是如果p所指的数大于s所指的数,就让s改为指向p所指的数(打擂台选出最大值)追问

p和s都指向a[0]意思是p和s都是指向数组里6是吗

追答

对啊,开始循环前,p和s都指向a[0],就是p和s都是指向数组里6

温馨提示:答案为网友推荐,仅供参考
相似回答