Re: [問題] 函數指標問題
#include <stdio.h>
int x=10;
int y=20;
int add_x(int y)
{
x=x*2;
y=y*2;
return x+y;
}
int map(int x,int(*f)(int))
{
x=x*2;
y=y*2;
return ((*f)(2*x)+(*f)(2*y));
}
int main()
{
int x=40,y=50;
{
int x=30;
printf("%d",map(x,add_x));
}
return 0;
}
-------------------------------------------------------------------------
各位好 想請問上面這個程式的輸出 我的分析如下
一開始是 x=30 map(30,add_x)
然後是 x=30*2=60 y=20*2=40 return add_x(120)+add_x(80)
add_x(120)=10*2+120*2=20+240=260
add_x(80)=10*2+80*2=20+160=180
最後 return 260+180=440
實際跑一遍 發現輸出是460
想請問 上面分析是哪邊出錯了?
THX
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.129.1.36
推
08/05 21:31, , 1F
08/05 21:31, 1F
→
08/05 21:32, , 2F
08/05 21:32, 2F
→
08/05 21:32, , 3F
08/05 21:32, 3F
→
08/05 21:32, , 4F
08/05 21:32, 4F
→
08/05 21:43, , 5F
08/05 21:43, 5F
推
08/05 23:13, , 6F
08/05 23:13, 6F
→
08/06 00:15, , 7F
08/06 00:15, 7F