引用共用同一个内存空间,只是一个别名。
#include <iostream> using namespace std; int main(void) { int a=10; int &b=a; printf("&a:%d ",&a); printf("&b:%d ",&b); cout<<"hello..."<<endl; return 0; }
运行结果:
下列结构体占多少字节?
struct Teacher { char name[64]; //64字节 int age; //4字节 内存对其故8字节 int &a; //32位 4字节 64位 8字节 int &b; //32位 4字节 }; int main(void) { printf("sizeof(Teacher):%d ",sizeof(Teacher)); return 0; }
运行结果:
引用的本质:
引用的本质:
//3引用的本质 void modifyA(int &a1) { a1 = 100; } void modifyA2(int *const a1) { *a1 = 200; //实参的地址 去间接的修改实参的值 } int main(void) { int a =10; modifyA(a); //指向这个函数调用的时候,我们程序员不需要取a得地址 printf("a:%d ",a); modifyA2(&a); //如果是指针 需要我们程序员手工的取实参的地址 printf("a:%d ",a); return 0; }
运行结果:
间接赋值: