C++引用

C++引用,第1张

目录

//引用调用(实现两个变量的交换)

拓:引用(&)变量

函数返回两个及以上的值(通过引用 / 指针 / 全局变量实现)

独立(常)引用 

//返回引用 

不要返回局部变量引用!!!(虽然编译可以通过) 

引用变量概念

拓:实参和形参 


//引用调用(实现两个变量的交换)

1.用值调用的方式(无法实现,函数无法更改a,b所在地址的值)

#include
using namespace std;
void swap(int a,int b);
int main(){
    int a=1,b=2;
    cout<<"a:"<


2.用指针方式

#include
void swap(int *a,int *b);
using namespace std;
int main(){
    int a=1,b=2;
    cout<<"a:"<

3.用引用调用方式实现

#include
using namespace std;
void swap(int &a,int &b);
int main(){
    int a=1,b=2;
    cout<<"a:"<

拓:引用(&)变量
//引用(&)变量 
#include
using namespace std;
int main(){
	int j=0,k=10;
	int &i=j; //变量i成为变量j的别名
	cout<<"i:"<

函数返回两个及以上的值(通过引用 / 指针 / 全局变量实现)

 引用 调用

#include
using namespace std;
void extremum(const int a[],int n,int &max,int &min);
int main(){
    int max,min;
    int a[]={12,34,56,7,3,99,67,45,3,80};
    extremum(a,sizeof(a)/sizeof(a[0]),max,min);
    cout<<"max="<=0&&i

不要返回局部变量引用!!!(虽然编译可以通过) 
#include  
int &func();
using namespace std;
int main() {
  cout<<(func()=5)<

引用变量概念

/*  
1.引用变量定义时必须进行初始化。



在程序中对引用的存取都是对它所引用的变量的存取。


也不能再指向别的变量!
2.引用与指针不同:
指针的内容或值是某一变量的内存单元地址,
而引用则与初始化它的变量具有相同的内存单元地址。


 
3.返回引用必须保证返回的引用变量有合法的内存空间,并且不在函数的运行栈中。



一般只能返回全局变量和静态变量。



4.使用const常引用的目的就是提高性能(不需要制作数据的副本)。



使用引用参数而不加const就应该认为该参数将被修改!
5.当函数需要返回多于1个值,或希望修改实参的值时必须使用引用调用。


 
6.如果条件允许,就应将引用形参声明为const形参,
这样可以避免无意间修改数据而导致编程错误,
此外使用const形参使得函数能够接受const和非const实参,否则只能处理非const数据。



eg.

#include
void func(const int &i);
using namespace std;
int main(){
    int a=1314;
    func(a);
    return 0;
}
void func(const int &i){
    cout<


7.对比总结:
void func1(int n){
    //可以修改n,但值不会返回调用者
}   //可用值或变量调用
void func2(int &n){  
    //可以修改n,值会返回调用者
}   //只能用同类型的变量调用该函数
void func3(const int &n){ 
    //根本就不允许修改n
}   //可用值或变量调用

 //func1/2/3具体如下

#include
int func1(int n);
using namespace std;
int main(){
    cout<<"4!="<
						

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/577761.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-11
下一篇 2022-04-11

发表评论

登录后才能评论

评论列表(0条)