#include "iostream"
using namespace std;
int main(int argc, char const *argv[])
{
int ref1=10;
int ref3=10;
int &ref2=ref1;
int &ref4=ref2;
//那么请问上面这两行代码,不就是定义了引用类型的引用吗?????为什么编译和运行都能正常进行。
//还有下面的这条语句编译是错误的,那么这个东西是引用的引用吗???
// int &(&ref5)=ref1;
cout<<"the program is running"<<endl;
return 0;
}
7 个解决方案
#1
读的好认真
应该是后面那种。
int & a; 是 int的 引用
指针的引用是 int * &a;
那引用(int &)的引用 应该是 int & & a;
至于是不是需要括号,就不知道了,因为本来就没有这个语法
至于第一种写法,还是 int的引用
应该是后面那种。
int & a; 是 int的 引用
指针的引用是 int * &a;
那引用(int &)的引用 应该是 int & & a;
至于是不是需要括号,就不知道了,因为本来就没有这个语法
至于第一种写法,还是 int的引用
#2
同楼上。就像int *p是定义成int型的指针一样,int &ref2=ref1指的是ref2是ref1的引用。下面同理
#3
引用不是
对象类型,所以没有引用。
#4
这里专门指的是 C++ 引用
#5
不能定义引用类型的引用, 意思是不能定义这样的东西. int &&val;
你想想指针的指针应该就能明白这句话的意思了. int**p;
int &ref2=ref1;
int &ref4=ref2;
这个例子并不是引用的引用, 这里都仅仅是 int类型的引用. 只是你初始化的时候, 是把一个引用给它初始化了.
你想想指针的指针应该就能明白这句话的意思了. int**p;
int &ref2=ref1;
int &ref4=ref2;
这个例子并不是引用的引用, 这里都仅仅是 int类型的引用. 只是你初始化的时候, 是把一个引用给它初始化了.
#6
楼主懂了吗?你看这两个类型还是int&啊int &ref2=ref1;
int &ref4=ref2;
int &ref4=ref2;
#7
谢谢 楼上的各位 前辈
#1
读的好认真
应该是后面那种。
int & a; 是 int的 引用
指针的引用是 int * &a;
那引用(int &)的引用 应该是 int & & a;
至于是不是需要括号,就不知道了,因为本来就没有这个语法
至于第一种写法,还是 int的引用
应该是后面那种。
int & a; 是 int的 引用
指针的引用是 int * &a;
那引用(int &)的引用 应该是 int & & a;
至于是不是需要括号,就不知道了,因为本来就没有这个语法
至于第一种写法,还是 int的引用
#2
同楼上。就像int *p是定义成int型的指针一样,int &ref2=ref1指的是ref2是ref1的引用。下面同理
#3
引用不是
对象类型,所以没有引用。
#4
这里专门指的是 C++ 引用
#5
不能定义引用类型的引用, 意思是不能定义这样的东西. int &&val;
你想想指针的指针应该就能明白这句话的意思了. int**p;
int &ref2=ref1;
int &ref4=ref2;
这个例子并不是引用的引用, 这里都仅仅是 int类型的引用. 只是你初始化的时候, 是把一个引用给它初始化了.
你想想指针的指针应该就能明白这句话的意思了. int**p;
int &ref2=ref1;
int &ref4=ref2;
这个例子并不是引用的引用, 这里都仅仅是 int类型的引用. 只是你初始化的时候, 是把一个引用给它初始化了.
#6
楼主懂了吗?你看这两个类型还是int&啊int &ref2=ref1;
int &ref4=ref2;
int &ref4=ref2;
#7
谢谢 楼上的各位 前辈