整数变量如何存储对整数的引用
How could an integer variable store a reference to integer?
我在c++中搜索对引用变量的解释,发现了这个:
#include<iostream>
int a=10; //global 'a' so that fun doesn't return a reference of its local variable
int & fun();
int main()
{
int p = fun(); //line to be noted
std::cout << p;
return 0;
}
int & fun()
{
return a;
}
这起作用了,这个也起作用了:
#include<iostream>
int a=10; //global 'a' so that fun doesn't return a reference of its local variable
int & fun();
int main()
{
int &p = fun(); //line to be noted
std::cout << p;
return 0;
}
int & fun()
{
return a;
}
我的问题是,一个整数变量如何像第一个代码片段[第6行]中那样存储引用的值。正确的语法不是如代码片段2[第6行]所示吗,即我们应该定义一个引用变量(int&p)来承载引用,而不是一个正则积分变量?编译器不应该给出一个错误或者至少一个警告吗?我使用的是GCC 4.7.1 64位。
好的,明白了@克里斯:你是对的。。当我这样做的时候:
int p = fun();
p++;
std::cout << p << endl << a;
结果分别为11和10。因此,只有a的值被复制到p中,而p并没有成为a的别名。但当我对第二个代码进行同样的尝试时,它显示a和p的值都是11。因此p变成了a的别名。
不,不管怎样都可以。
在这种特殊情况下,返回值引用甚至是不必要的,因为您没有试图在"动态"或稍后修改返回值"a",就像您为此目的使用算术运算符重载时一样,例如
相关文章:
- 取消引用指向整数的指针时获得不同的结果
- 创建<int>对整数数组指针的矢量引用 (C++)
- 此代码如何使用整数为您提供引用?
- 取消引用指向整数的指针会导致分段错误
- 通过使用CTYPES通过引用传递整数数组
- 对随机整数的未定义引用
- 对基元整数的右值引用是短命的还是长寿命的
- 为什么数字10用于引用整数类型0
- 当我们在 c++ 中将常量整数引用分配给整数指针时,行为是什么
- 你能取消引用一个整数文本吗
- Rcpp,C++:对于大小变化的整数向量,通过引用传递
- 将短*/双*转换为整数*,然后返回并取消引用
- 返回对整数的引用时使用C++代码
- 整数变量如何存储对整数的引用
- 将整数传递给请求引用的函数
- 对静态整数数组的未定义引用
- 如何在C++中通过引用传递"literal"整数
- 用整数引用c#的封送结构
- 你能通过对指针解引用返回一个整数吗?
- 为什么我不能使用 static_cast<int&> 将整数引用参数传递给 C++ 中的函数?