c++ - 使用按名称调用传递参数

标签 c++ parameters

假设我有这样的 C++ 片段:

int A[3] = {0, 2, 1};

void f(int x, int y) {
    x++; A[1]--; y++;
    print(x, y, A[0], A[1], A[2]);
}

void main() {
    f(A[0], A[A[1]]);
    print(A[0], A[1], A[2]);
}

我想在 f() 中使用调用名称传递 A[0]A[A[1]] .

在这种情况下,打印的结果应该是:1 1 1 2 1 1 2 1(这是来 self 们老师的编程语言课)。但是,我无法理解 yfprint() 的调用中如何可以为 1。 y 是否在 A[1]-- 开始和之后与 A[A[1]]=A[2]=1 绑定(bind)-- 更改为 A[A[1]]=A[1]=1?之后,y++ 不会使 y 等于2?

此外,为了使 A[1]A[1]-- 之后变为 2,它必须以某种方式递增 1,这正是y++ 做什么,意思是 y++=A[1]++=2。那么,在 fprint() 的调用中,y =/= A[1]?

最佳答案

当你在 C++ 中将一个值传递给一个函数时,它就变成了一个独立的值,它不再引用数组。因此,y 在函数中等于 1,它独立于 A['1']

关于c++ - 使用按名称调用传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56726700/

相关文章:

c++ - 注册 COM 接口(interface)的实现

reporting-services - SSRS 按参数分组

Java:自定义方法参数问题

java - 一个接口(interface)只能实现一个参数化——如何解决?

javascript - 如何在 javascript 中传递变量而不使用参数?

c++ - 生成文件 -std=c++11

c++ - 动态创建的复选框的事件处理程序

c++ - 为什么在我的程序中出现段错误?

c++ - 将类数组传递给函数

java - 如何在 hibernate 查询中使用嵌套属性作为命名参数?