类 Person p; Person &px = p; //起个别名叫px px.x = 10; //px就是p printf("%d \n",p.x); <3> 指针 int******** i = (int********)1; int********& r = i; //起个别名叫r r = (int ********)2; //r就是i printf("%d \n",r); <4> 数组 int arr[] = {1,2,3}; int (&px)[3] = arr; //起个别名叫px px[0] = 100; //px就是arr printf("%d \n",arr[0]);"> 类 Person p; Person &px = p; //起个别名叫px px.x = 10; //px就是p printf("%d \n",p.x); <3> 指针 int******** i = (int********)1; int********& r = i; //起个别名叫r r = (int ********)2; //r就是i printf("%d \n",r); <4> 数组 int arr[] = {1,2,3}; int (&px)[3] = arr; //起个别名叫px px[0] = 100; //px就是arr printf("%d \n",arr[0]);">

Presentation is loading. Please wait.

Presentation is loading. Please wait.

本节内容 引用类型 视频提供:昆山爱达人信息技术有限公司 官网地址:www.bcdaren.com 联系QQ:1250121864 QQ交流群 :49759272 联系电话:0512-57882866.

Similar presentations


Presentation on theme: "本节内容 引用类型 视频提供:昆山爱达人信息技术有限公司 官网地址:www.bcdaren.com 联系QQ:1250121864 QQ交流群 :49759272 联系电话:0512-57882866."— Presentation transcript:

1 本节内容 引用类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:

2 1、引用就是变量的“别名” 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864
<1> 基本类型 int x = 1; int &p = x; //起个别名叫p p = 2; //p就是x printf("%d \n",x); <2> 类 Person p; Person &px = p; //起个别名叫px px.x = 10; //px就是p printf("%d \n",p.x); <3> 指针 int******** i = (int********)1; int********& r = i; //起个别名叫r r = (int ********)2; //r就是i printf("%d \n",r); <4> 数组 int arr[] = {1,2,3}; int (&px)[3] = arr; //起个别名叫px px[0] = 100; //px就是arr printf("%d \n",arr[0]);

3 2、引用类型的本质 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 在反汇编中寻址答案:
《参见课堂》

4 1、引用必须赋初始值,且只能指向一个变量,“从一而终”。 2、对引用赋值,是对其指向的变量赋值,而并不是修改引用本身的值。
昆山爱达人信息技术有限公司 QQ: 3、引用类型与指针的区别 int x = 1; //必须初始化 int* p = &x; int& ref = x; //运算 p++; ref++; //赋值 p = (int*)1; ref = 100; Base b(1,2); //必须初始化 Base* p = &b; Base& ref = b; //运算 p++; //ref++; //赋值 p = (Base*)1; //ref = 100; class Base { public: int x; int y; Base(int x,int y) this->x = x; this->y = y; } }; 总结: 1、引用必须赋初始值,且只能指向一个变量,“从一而终”。 2、对引用赋值,是对其指向的变量赋值,而并不是修改引用本身的值。 3、对引用做运算,就是对其指向的变量做运算,而不是对引用本身做运算。 4、引用类型就是一个“弱化了的指针”。

5 4、引用在函数参数传递中的作用(基本类型)
昆山爱达人信息技术有限公司 QQ: 4、引用在函数参数传递中的作用(基本类型) void Plus(int& i) { i++; return ; } int main(int argc, char* argv[]) int i = 10; Plus(i); printf("%d \n",i); return 0;

6 5、引用在函数参数传递中的作用(构造类型)
昆山爱达人信息技术有限公司 QQ: 5、引用在函数参数传递中的作用(构造类型) struct Base { int x; int y; Base(int x,int y) this->x = x; this->y = y; } }; void PrintByRef(Base& refb,Base* pb) //通过指针读取 printf("%d %d\n",pb->x,pb->y); //通过引用读取 printf("%d %d\n",refb.x,refb.y); //指针可以重新赋值 可以做运算 //refb = (Base&)1; //refb++;

7 6、给狗起个人的名字? 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 引用是变量的别名,如:
int x = 10; int& r = x; //int类型的别名 就应该是int& Base b(1,2); Base& r = b; //Base类型的别名 就应该是Base& Base& r = (Base&)x; //虽然可以编译 但意义不大

8 7、常引用 昆山爱达人信息技术有限公司 www.bcdaren.com QQ:1250121864 class Base { public:
int x; }; void Print(const Base& ref) //ref = 100; 不能修改 //ref.x = 200; //但能修改指向的内容 printf("%d \n",ref.x); } int main(int argc, char* argv[]) Base b; b.x = 100; Print(b); return 0;

9 <汇编、C/C++线上班>学员可见
昆山爱达人信息技术有限公司 QQ: 课后练习: <汇编、C/C++线上班>学员可见


Download ppt "本节内容 引用类型 视频提供:昆山爱达人信息技术有限公司 官网地址:www.bcdaren.com 联系QQ:1250121864 QQ交流群 :49759272 联系电话:0512-57882866."

Similar presentations


Ads by Google