对这些指针感到困惑?

时间:2015-10-13 01:46:40

标签: c++ arrays pointers

这应该打印3,5,-1。我不明白幕后发生的事情。 调用函数foo时会发生什么?我无法理解函数foo中的最后4行。我理解其他一切。

enter image description here

1 个答案:

答案 0 :(得分:0)

功能基本上变成了

foo(&x, arr[0], 3)
z = z+2 // z=3+2=5
x = *y -z; // x=arr[0]-5=4-5=-1
*y = z; //arr[0]=5

通知a仍为3,因为它是按值传递的。 b指向执行函数后数组的开始5c-1,因为通过引用传递。