主题:弄不清一个指针函数的问题,寻求解答.
一个关于指针函数的程序:
#include<iostream.h>
int f1(int &x)
{ return x++;}
int f2(int (*f)(int &),int y)
{ int sum=0,count=0;
for(int i=0;i<=y;i++)
{ sum+=f(i);
sum+=f(i);
count++;
cout<<sum<<endl;
}
return count;
}
void main(void)
{ int count;
count=f2(f1,5);
cout<<count<<endl;
}
运行结果是:
1
8
2
我不能理解为什么(如第一次调用)调用函数f1(),x加1返回却没有将1赋给sum,函数的返回值仍为0,加1的是i,这里应如何理解呢?
#include<iostream.h>
int f1(int &x)
{ return x++;}
int f2(int (*f)(int &),int y)
{ int sum=0,count=0;
for(int i=0;i<=y;i++)
{ sum+=f(i);
sum+=f(i);
count++;
cout<<sum<<endl;
}
return count;
}
void main(void)
{ int count;
count=f2(f1,5);
cout<<count<<endl;
}
运行结果是:
1
8
2
我不能理解为什么(如第一次调用)调用函数f1(),x加1返回却没有将1赋给sum,函数的返回值仍为0,加1的是i,这里应如何理解呢?