为什么要使用变量的地址来更改变量的值?

时间:2019-04-09 01:35:37

标签: c pointers

在我的演讲幻灯片的page 15中,有一个示例。

int x = 10;
increment_int(x); // can’t change the value of x
increment2_int(&x); // can change the value of x

我不明白为什么第一个函数increment_int(x)不能更改x的值。尽管我不知道这些函数到底能做什么,但我猜想它们正在增加参数的数量。

1 个答案:

答案 0 :(得分:2)

  • increment_int按值传递。如果函数increment_int更改 其参数的值,仅反映在其本地副本中。 呼叫者看不到更改。
  • increment2_int通过引用传递。您宁愿传递x的地址 该函数的x值。此功能更改值 在指定的地址(也反映在呼叫方)上。