问题描述
C++ primer 第五版的练习题:
Exercise 2.25: Determine the types and values of each of the following variables.(a) int* ip, &r = ip;
请问怎么理解 &r = ip ?
我实在理解不能。。。r 是一个 int 的引用,如何可以用 ip (一个 int 的指针)赋值呢?
--补充:
正如 @araraloren 在回答中指出的,这句编译时会报错:
int* ip, &r = ip;
要改成:
int* ip, *&r = ip;
或者
int* ip, &r = *ip;
才可以编译通过。
问题解答
回答1:ip类型是int*r的类型是int&&r = ip; //编译器会给出错误可能题目的想法是分辨类型,代码的正确性其次?
回答2:&r是r的地址,没人要求把int*赋给r,是赋给&r,这样*(&r)=*ip