一、普通引用:
struct Teacher
{
char name[16];//16
int age;//4
int& c;//4
};
int main()
{
//普通引用
int a = 10;
int& b = a;//定义时必须初始化
b = 100;//b就是内存标识a的别名
printf("a=%d\n", a);//修改b相当于修改a
printf("Teacher=%d\n", sizeof(Teacher));
cout << "Hello C++" << endl;
system("pause");
return 0;
}
代码2:
int getA1()
{
int a = 10;
return a;
}
//返回引用看如何去接
//如果是变量去接的话会把值赋给变量
//如果是引用去接会把内存地址赋给变量
int& getA2()
{
int a = 20;
return a;
}
int* getA3()
{
int a = 30;
return &a;
}
int main()
{
int a1 = 0;
int a2 = 0;
a1 = getA1();//10
a2 = getA2();//20
int& a3 = getA2();//
int* p4 = NULL;
p4 = getA3();
printf("a1=%d\n", a1);
printf("a2=%d\n", a2);
printf("a3=%d\n", a3);
system("pause");
return 0;
}
//返回变量本身-->就是返回变量标识的内存空间
函数返回值为引用当左值:
static int a = 10;
int& g()
{
a++;
return a;
}
int main()
{
int a1 = 0;
int a2 = 0;
a1 = g();//a1=11
printf("a1=%d\n", a1);
g() = 15;//===>a = 15
printf("a=%d\n", a);//a1=15
system("pause");
return 0;
}