对引用取地址

今天突然想到,如果我们对一个引用取地址,那么会怎么样呢,例如这样

#include <stdio.h>

class CNumber {
public:
	int n;
};

void printByPointer(CNumber* pNumber) {
	printf("%d\n", pNumber->n);
}

void printByRef(CNumber& oNumber) {
	printf("%d\n", oNumber.n);
}

void passPointer(CNumber& oNumber) {
	printByPointer(&oNumber);
}

int main() {
	CNumber oNumber;
	oNumber.n = 5;
	printByPointer(&oNumber);
	printByRef(oNumber);
	passPointer(oNumber);
	return 0;
}

显然前面两个都可以正常运行,那么第三个呢,实测下来,也是可以的,也就是说,对一个引用取地址,可以得到正确的地址

Leave a Reply

Your email address will not be published. Required fields are marked *