【发布时间】:2020-10-31 16:21:32
【问题描述】:
我对为什么函数增量不返回值 11 感到困惑,因为 a 是函数增量的本地,因此我们无法在主函数中访问它。
#include <iostream>
using namespace std;
int increment(int a) {
a=a+1;
return a;
}
int main() {
int a=10;
increment(a);
cout<<a;
return 0;
}
【问题讨论】:
-
您通过值传递
a,因此您正在递增该值的副本。然后在函数结束时丢弃所述副本,原件保持不变。 -
试试
a=increment(a); -
@EtienneDeMartel 在函数结束时被丢弃?它被退回。调用函数时会丢弃该值。
-
你能解释一下按值是什么意思
-
@vikash 变量,您知道它们是值。他们只是对他们有某种价值。这些值/变量驻留在内存(某种)中的 address 中。 指针(例如
int*)是一个变量/值,它等于int类型的某个其他变量/值的地址。当您将某些内容传递给函数(指针或其他方式)时,它会复制该值。因此,传递的指针会复制指针的地址(而不是其内容!),传递的值会复制该值。 C++ 还具有传递引用语义 (int&)
标签: c++