请教函数常量参数传递

来源:百度知道 编辑:UC知道 时间:2024/06/05 04:05:46
int add(int a, const int b)
{
a=5;
int tmp=a+b;
return tmp;
}
int main()
{
int s1=100,s2=200;
int t=add(s1,s2);
}
t=205,为什么呢?望大侠指教

是205,很明显了。在主函数中, s1=100,s2=200;
add(s1,s2);
代入就是add(100,200);
转入函数的执行过程
int add(int a, const int b)
{
a=5;
int tmp=a+b;
return tmp;
}
这里100赋值给a,200赋值给b。看函数体的语句
首先就是a=5,也就是说,外部过来的100已经被5改写了。temp=a+b就是5+200
这不就是205了吗?返回也就是205

b,为常量,且赋值200
a,虽然你给了函数一个S1,但是你再函数中又重新赋值a=5,返回值自然就是205,呵呵

a=5;
int tmp=a+b;//a=5,b=200,tmp=5+200=205
return tmp;

很明显。你看你的add函数里第一句话就是给a赋值,这样不管你传参给a为多少,结果都是b+5啊。