瑞星卡卡安全论坛

首页 » 技术交流区 » 系统软件 » 高手请进
hmjlook - 2005-7-8 10:36:00
#include<stdio.h>
int f(int a, int b)
{
int c;
if(a>b)  c=1;
else if(a==b)  c=0;
else c=-1;
return(c);
}
main()
{
int i=2,p;
p=f(i,i++);   
printf("%d",p);
return p;
}
这段程序执行的为什么是1.而不是0?请高手帮忙
瘦瘦的小老鼠 - 2005-7-8 15:43:00
p=f(i,i++);
关键就在这句上面,()的运算优先级要比++高,也就是说++是在函数返回C的值后再进行运算的,这样的话,最后答案当然是0咯
还有你那个return p;写在那里做什么?你想把P的值返回到哪里去??
hmjlook - 2005-7-8 19:47:00
哦,谢谢
midiguitar - 2005-7-8 23:37:00

mina 里最后的return p;
我猜一定是return 0;错打成p了;
直接return;就行了
1
查看完整版本: 高手请进