如何在C++中获取通过引用传递的值的值

blc*_*llo 1 c++ pass-by-reference

我有一个函数与以下声明:

void cleanValid(int valid[][4], int &size, int index);
Run Code Online (Sandbox Code Playgroud)

在执行此函数时,我需要设置另一个计数器,该计数器等于引用传递的整数大小.我尝试过这样的事情:

int count;
count = size;
Run Code Online (Sandbox Code Playgroud)

如果我没有弄错,当我更改count的值时,它也会改变size的值.我不能发生这种情况.我如何将大小的值复制到计数中并使它们保持独立?

unw*_*ind 12

不,你错了.当您从引用中读取非引用变量时,您不会在两者之间建立任何类型的链接.你将拥有当时价值的独立副本size,没有别的.

如果你影响它的值size,你必须使用它的引用:

int& count = size;

/* ... */    
count= 32;  /* This will change size, too. */
Run Code Online (Sandbox Code Playgroud)