我不知道如何使用引用调用将结构传递给以下代码中的函数?
I am not getting how the structure is being passed to a function in following code using call by reference?
就像这段代码,我不明白的是 'n1' [increment(n1) ] 是怎样的被传递给 'number& n2'[void increment(number& n2)]。
我们如何将 n1 传递给 &n2?
如果我的基础知识有误,请告诉我,因为我最近才开始学习 C 和 C++。
// C++ program to pass structure as an argument
// to the functions using Call By Reference Method
#include <bits/stdc++.h>
using namespace std;
struct number {
int n;
};
// Accepts structure as an argument
// using call by reference method
void increment(number& n2)
{
n2.n++;
}
void initializeFunction()
{
number n1;
// assigning value to n
n1.n = 10;
cout << " number before calling "
<< "increment function:"
<< n1.n << endl;
// calling increment function
increment(n1);
cout << "number after calling"
<< " increment function:" << n1.n;
}
// Driver code
int main()
{
// Calling function to do required task
initializeFunction();
return 0;
由于您将参数递增函数作为参考,因此当您将 n1 传递给它时,如下所示:
increment(n1);
它作为增量函数的引用传递,这基本上意味着 n1 的别名是用名称 n2 创建的
void increment(number& n2)
这意味着每当 n2 发生变化时,它也会反映在 n1 中(因为它们指的是同一个位置)
此外,将变量作为引用传递意味着允许函数修改变量,而无需通过声明引用变量来创建变量的副本。传递的变量和参数的内存位置相同,因此,对参数的任何更改都会反映在变量本身中。
所以,函数调用后:
n1.n
递增
就像这段代码,我不明白的是 'n1' [increment(n1) ] 是怎样的被传递给 'number& n2'[void increment(number& n2)]。 我们如何将 n1 传递给 &n2? 如果我的基础知识有误,请告诉我,因为我最近才开始学习 C 和 C++。
// C++ program to pass structure as an argument
// to the functions using Call By Reference Method
#include <bits/stdc++.h>
using namespace std;
struct number {
int n;
};
// Accepts structure as an argument
// using call by reference method
void increment(number& n2)
{
n2.n++;
}
void initializeFunction()
{
number n1;
// assigning value to n
n1.n = 10;
cout << " number before calling "
<< "increment function:"
<< n1.n << endl;
// calling increment function
increment(n1);
cout << "number after calling"
<< " increment function:" << n1.n;
}
// Driver code
int main()
{
// Calling function to do required task
initializeFunction();
return 0;
由于您将参数递增函数作为参考,因此当您将 n1 传递给它时,如下所示:
increment(n1);
它作为增量函数的引用传递,这基本上意味着 n1 的别名是用名称 n2 创建的
void increment(number& n2)
这意味着每当 n2 发生变化时,它也会反映在 n1 中(因为它们指的是同一个位置)
此外,将变量作为引用传递意味着允许函数修改变量,而无需通过声明引用变量来创建变量的副本。传递的变量和参数的内存位置相同,因此,对参数的任何更改都会反映在变量本身中。
所以,函数调用后:
n1.n
递增