C++ 通过参考资料?
在下面的代码中,我不理解这两个版本之间的区别。在这两种情况下,我(我认为)都是通过引用来完成一段文章的 此外,我不明白为什么版本2可以工作,因为就我目前的理解而言,符号C++ 通过参考资料?,c++,C++,在下面的代码中,我不理解这两个版本之间的区别。在这两种情况下,我(我认为)都是通过引用来完成一段文章的 此外,我不明白为什么版本2可以工作,因为就我目前的理解而言,符号&允许我给出一个变量的地址,所以当我输入函数名(int&yourInt)时,我从技术上要求用户输入int的地址?所以我应该像调用函数\u name(&myInt)那样调用它?但是在这里我们调用类似于function\u name(myInt)的函数 第1版: int值(int选项卡[],int*valeur) { 对于(int i
&
允许我给出一个变量的地址,所以当我输入函数名(int&yourInt)
时,我从技术上要求用户输入int
的地址?所以我应该像调用函数\u name(&myInt)
那样调用它?但是在这里我们调用类似于function\u name(myInt)
的函数
第1版:
int值(int选项卡[],int*valeur)
{
对于(int i=0;i<5;i++)
{
*valeur+=制表符[i];
}
返回*valeur;
}
int main()
{
int检验=0;
int tab[10]={1,2,3,4,5};
std::cout当&
字符是类型声明的一部分时,这意味着变量是对另一个的引用。因此,在第二个函数中,int&valeur
声明一个名为valeur
的变量,该变量是对int
的引用。这个示例应该有助于您理解:
#include <iostream>
int main() {
int a = 5;
int& b = a; // b is a reference to a
std::cout << a << '\n'; // outputs 5
std::cout << b << '\n'; // outputs 5
a = 7;
std::cout << a << '\n'; // outputs 7
std::cout << b << '\n'; // outputs 7
}
#包括
int main(){
INTA=5;
int&b=a;//b是对a的引用
std::cout在第一个示例中,value
将指向int的指针作为第二个参数。指针用于保存内存地址,因此必须使用address操作符(&
)调用函数,传递test
的地址
在第二个示例中,value
将对int的非常量引用作为第二个参数,因此这次不需要传递test
的内存地址。发生的情况几乎相当于这样的情况:
int test = 0;
int& valeur = test;
所以记住,地址操作符:
int test;
std::cout << &test; // outputs address of "test" in memory
第一个程序使用指针而不是引用。引用和指针是不同的东西,但是有些程序(像你的)可以用引用和指针同样好地编写。非常感谢!
int test;
int& valeur = test; // here, the type of "valeur" is "int&"