gpt4 book ai didi

c++ - 在 C++ 中传递一个值以通过引用返回

转载 作者:行者123 更新时间:2023-11-30 03:48:01 25 4
gpt4 key购买 nike

我有一个函数接收两个整数引用。 bool 指标允许选择一次第一个引用和一次选择第二个引用,如下面的代码所示:

1)不明白alterne(n,p) = 0 和alterne(n,p) = 12 的意思

2) static bool indic的函数;

#include <iostream>
using namespace std;

int & alterne (int &, int &);

int main()
{
int n=1, p=3, q=5;

alterne(n,p) = 0;
cout << "n=" << n << "p=" << p << "\n" ;

alterne(p,q) = 12;
cout << "p=" << p << "q=" << q << "\n" ;
}

int & alterne (int & n1, int & n2)
{
static bool indic = true;
if (indic) { indic =false; return n1; }
else { indic = true; return n2 ; }
}

感谢您的考虑

最佳答案

以下内容对您有意义吗?这是一个通过引用获取 int 并为其分配新值的函数。

void foo(int& x)
{
x = 33;
}

1) I don't understand the meaning of alterne(n,p) = 0 and alterne(n,p) = 12

对于您的问题,alterne 返回int&。所以你的情况基本上与上面相同(即,对 int 的引用可用,并且最终将一个新值分配给引用的 int)。

alterne(n, p) = 0;
// first call is equivalent to getting an `int&` to `n`
// then performing n = 0;

alterne(p, q) = 12;
// second call is equivalent to getting an `int&` to `q`
// then performing q = 12;

2) and the function of the static bool indic;

这是 alterne 函数的局部变量,但具有生命周期,因此相同的 bool 可用于所有函数调用。它被初始化一次并在每次函数调用期间读取。因此,它会在第一次函数调用时被初始化为 true,并在每次后续函数调用时在 falsetrue 之间切换。

关于c++ - 在 C++ 中传递一个值以通过引用返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33412879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com