C++ C+中的引用+;
假设我们有这两种情况C++ C+中的引用+;,c++,reference,C++,Reference,假设我们有这两种情况 int p = 10; int& q = p; 及 这两种情况不一样吗?我不太清楚引用的目的,因此请解释这两者的区别。在第二种情况下,如果更改q的值,则不会影响p的值。在第一种情况下,更改q的值也将更改p的值,反之亦然 $ cat ref.cpp #include <iostream> int main () { int p = 10; int q = p; int s = 10; int& t = s; q = 11;
int p = 10;
int& q = p;
及
这两种情况不一样吗?我不太清楚引用的目的,因此请解释这两者的区别。在第二种情况下,如果更改
q
的值,则不会影响p
的值。在第一种情况下,更改q
的值也将更改p
的值,反之亦然
$ cat ref.cpp
#include <iostream>
int main () {
int p = 10;
int q = p;
int s = 10;
int& t = s;
q = 11;
t = 11;
std::cout << p << std::endl;
std::cout << q << std::endl;
std::cout << s << std::endl;
std::cout << t << std::endl;
s = 12;
std::cout << s << std::endl;
std::cout << t << std::endl;
}
$ g++ ref.cpp
$ ./a.out
10
11
11
11
12
12
$
$cat ref.cpp
#包括
int main(){
int p=10;
int q=p;
int s=10;
int&t=s;
q=11;
t=11;
std::cout在第二种情况下,如果更改q
的值,则不会影响p
的值。在第一种情况下,更改q
的值也会更改p
的值,反之亦然
$ cat ref.cpp
#include <iostream>
int main () {
int p = 10;
int q = p;
int s = 10;
int& t = s;
q = 11;
t = 11;
std::cout << p << std::endl;
std::cout << q << std::endl;
std::cout << s << std::endl;
std::cout << t << std::endl;
s = 12;
std::cout << s << std::endl;
std::cout << t << std::endl;
}
$ g++ ref.cpp
$ ./a.out
10
11
11
11
12
12
$
$cat ref.cpp
#包括
int main(){
int p=10;
int q=p;
int s=10;
int&t=s;
q=11;
t=11;
标准::cout
在这种情况下,q
实际上是p
的别名。它们共享一个内存位置。如果修改q
,则修改p
。如果修改p
,则修改q
只是p
的不同名称
int p = 10;
int q = p;
这里,q
在初始化q
时获取p
值的副本。之后,q
和p
是完全独立的。更改q
不会影响p
,更改p
不会影响q
在这种情况下,q
实际上是p
的别名。它们共享一个内存位置。如果修改q
,则修改p
。如果修改p
,则修改q
只是p
的不同名称
int p = 10;
int q = p;
在这里,q
在q
初始化时获取p
值的副本。之后,q
和p
是完全独立的。更改q
不会影响p
并且更改p
不会影响q
更改引用将更改un code>这可能很有用
在下列情况下:
int count_odd = 0;
int count_even = 0;
int i;
....
// Create a reference to either count_odd or count_even.
int& count = (i%1) ? count_odd : count_even;
// Now update the right count;
count++;
这是相当人为的,但随着时间的推移,它变得更加有用
复杂的情况。更改引用将更改基础变量。这非常有用
在下列情况下:
int count_odd = 0;
int count_even = 0;
int i;
....
// Create a reference to either count_odd or count_even.
int& count = (i%1) ? count_odd : count_even;
// Now update the right count;
count++;
这是相当人为的,但随着时间的推移,它变得更加有用
复杂的情况。在第二种情况下,pq
是两个独立的整数。在第一种情况下,两个pq
将指向内存中的相同位置。正如您所要求的引用。请通过按值调用和按引用调用
。您可以理解引用的用法。浏览页面。 在第二种情况下,pq
是两个独立的整数。在第一种情况下,pq
将指向内存中的同一位置。正如您所要求的引用目的。请通过callbyvalue和callbyreference
。您可以理解引用的用法。浏览页面。isocpp祝您愉快。isocpp haI’’我很高兴。谢谢你@dhke。很好的解释。谢谢你@dhke。很好的解释。