void func(int *ptr, int &value)
{
ptr = &value;
}
int main()
{
int i = 10, j = 5;
int *ptr = &i;
func( ptr, j);
printf("%d", *ptr);
return 0;
}
请问,此时输出来的*ptr的值是多少?5还是10?
答案是10。
这里主要涉及到函数参数问题,同int类型一样,指针也存在引用的问题。
如果上面的函数声明改为:
void func (int* &ptr, int &value);
则答案就是5了。