标签:temp int 传递 程序员 引用 实参 黑马 指针
就像上一节最后说的,引用就像指针常量,不可以改变指针指向,可以改变参数值,这就是唯一的重点。
引用的提出,就是定义了一个变量,存入数据,能否给这个变量起一个小名,都是这个房子,但是有一个大名,有一个小名,于是有了:
int a = 10;
int& b = a; //int const* b = &a;
我们可以通过b对该数据进行任何操作,赋值、运算、取地址等等,都一样,因为这就是一个房子的不同名字而已。所以,这就带来,定义引用的条件:第一,必须有右值(没房子还起什么小名);第二,一旦初始化,就不能更改(你把这个名字给了这个房子,就不能用这个名字给其他房子起名字)有点像指针常量了吧,不可以更改指向了。
引用的用处:这个时候温习一下参数传递——值传递(不改变实参)、地址传递(改变实参)、那引用传递呢?
既然引用传递是从指针常量的角度出发的,那他一定可以改变实参!!!
void myswap1(int a, int b) {//值传递
int temp = a;
a = b;
b = temp;
cout << a << endl;
cout << b << endl;
}
void myswap2(int* a, int* b) {//地址传递
int temp = *a;
*a = *b;
*b = temp;
cout << *a << endl;
cout << *b << endl;
}
void myswap3(int& a, int& b) {//引用传递 起了个别名,修改别名就是修改原来的值,比指针简单,简化指针
int temp = a;
a = b;
b = temp;
cout << a << endl;
cout << b << endl;
}
观察就能知道,引用传递不用那么多******,指针其实虽然我能懂,但是太难看了,用int&,一步到位,使用函数的时候,也是直接传入变量名,不用地址,很爽!有木有!!!再也不怕忘记✳了
而且,还可以在主函数里,给自己定义的函数左赋值,这点太强了。
常量引用,const int & ret 就像既修饰指针又修饰常量,数值不可以改,指针不可以改。主要用途,比如打印数据,不允许修改主函数的实参值等。
今天就到这吧,明天学习默认参数、占位参数、函数重载
标签:temp,int,传递,程序员,引用,实参,黑马,指针 来源: https://blog.csdn.net/weixin_44730078/article/details/121296125
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。