1、引用
#include<stdio.h>
#include<Windows.h>
struct Base
{
int x;
int y;
Base(int x, int y)
{
this->x = x;
this->y = y;
}
};
void PrintByPoint(Base* pb)
{
printf("%d %d\n", pb->x, pb->y);
pb = (Base*)0x123456;
//为所欲为...
}
void PrintByRef(Base& refb, Base* pb)
{
printf("%d %d\n", refb.x, refb.y);
printf("%d %d\n", pb->x, pb->y);
Base b1(21, 31);
//*pb = b1;
//printf("%d %d\n", pb->x, pb->y);
//&refb = b1; //引用不能重新赋值
refb = b1; //这个不是重新赋值,这个是把b1的值赋给refb代表的对象
printf("%d %d\n", refb.x, refb.y);
}
int main(int argc, char* argv[])
{
Base base(1, 2);
PrintByRef(base, &base);
getchar();
return 0;
}
总结:
1.引用类型是C++里面的类型
2.引用类型只能赋值一次,不能重新赋值
3.引用只是变量的一个别名.
4.引用可以理解成是编译器维护的一个指针,但并不占用空间(如何去理解这句话?).
5.使用引用可以像指针那样去访问、修改对象的内容,但更加