【发布时间】:2013-06-09 13:20:00
【问题描述】:
如果我有以下方法:
void addfive(int num)
{
num = num + 5;
}
当我像这样在主程序中使用它时:
int a = 15;
addfive(a);
将发生的情况是 5 将被添加到 (a) 变量的副本中。
但如果方法参数是指针int* num 而不是int num
5 将被添加到(a) 变量中并且不会创建副本。
如果我在我的方法中使用了指针,这会比第一种方法使用更少的内存吗?这在 non_void 方法中是否有效?
【问题讨论】:
-
有什么特别的原因不使用引用 (
int &num) [假设 C++]? -
使用不同的参数规则发布 3 种语言的问题是个坏主意
-
在 C++ 中,您显示的方法版本可能会被优化掉,因为它根本没有任何效果。在这种情况下,它将使用 less 内存而不是传递指针的内存。
-
请不要将概念语义与实际发生的情况混淆。