为什么x和y传递值,而不是下面的代码引用?

对于下面的代码,为什么变量x,y,s传递值而仅z是传递引用。

void foo(int* a,int* b,int& c,int d) {
  *a = *a + 1;
  b = b + 1;
  c = c + 1;
  d = d + 1;
}

int main() {
 int x = 0,y = 5,z = 10,s = 20;
 foo(&x,&y,z,s);
 cout << x << “,” << y << “,” << z <<“,” << s <<endl;
 return 0;
 }
keith_ye_mao 回答:为什么x和y传递值,而不是下面的代码引用?

在foo()函数 a b 中的

是指针,即它们将获取变量的地址,并在函数调用地址中传递x和y。但是 c 引用了提供的参数。 您可以看到C程序示例here on geeksforgeeks

本文链接:https://www.f2er.com/3067811.html

大家都在问