【发布时间】:2009-11-04 09:54:26
【问题描述】:
我有一个具有以下声明的函数:
void cleanValid(int valid[][4], int &size, int index);
在实现此函数时,我需要设置另一个计数器,该计数器等于通过引用传递的整数大小。我尝试做类似的事情:
int count;
count = size;
如果我没记错的话,当我改变 count 的值时,它也会改变 size 的值。我不能让这种事情发生。我将如何将 size 的值复制到 count 并保持它们独立?
【问题讨论】:
-
另外,最好写
int count = size;,未初始化的变量是一场噩梦,如果您将它们全部激活,您的编译器应该会提供警告。如果你想要一个更广泛的范围,例如使用一个神奇的值来初始化int count = 0;,但不要让它处于未定义的值(c++ 不保证内置将被初始化,尽管在调试模式下一些编译器会这样做它仍然像 VC++)。 -
IMO 最好不要初始化该值,而不是使用魔法初始化值。如果您不小心最终使用了未初始化的变量,则很有可能会出现编译器警告。如果你不小心使用了一个无意义的值,你的代码就不会做它应该做的事情,你当然不会得到任何警告。对于 0 表示某种含义的情况,应保存使用 0 的显式初始化。
标签: c++ pass-by-reference