2024年最新C++引用之用法详解_c++引用的过程,2024年最新C C++技术功底不够如何去面试

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

int tmp = a;
a = b;
b=tmp;
}
void my_swap2(int *a,int *b)//a=&data1,b =data2;{
int tmp = *a;
*a = *b;
*b = tmp;
}
void my_swap3(int &a, int &b)//a=data1,b=data2{
int tmp = a;
a = b;
b= tmp;
}
void test04(){
int data1 = 10,data2=20;
cout<<"data1 = “<<data1<<”, data2 = "<<data2<<endl;
//my_swap1(data1,data2);//交换失败
//my_swap2(&data1,&data2);//交换成功
my_swap3(data1,data2);//交换成功(推荐)
cout<<"data1 = “<<data1<<”, data2 = "<<data2<<endl;
}


### **2、引用作为函数的返回值**


给函数的返回值 取个别名



//引用作为函数的返回值类型
int& my_data(void){
int num = 100;
return num;//err 函数返回啥变量 引用就是该变量的别名
//函数的返回值是引用时 不要返回局部变量
}
int& my_data1(void){
static int num = 200;
return num;//ok
}
void test05(){
//ret是别名 ret是num的别名
int &ret = my_data();
//cout<<"ret = "<<ret<<endl;//非法访问内存

int &ret1 = my_data1();//ret1是num的别名
cout<<"ret = "<<ret1<<endl;
}


当函数返回值作为**左值** 那么函数的返回值类型必须是**引用**。


![](https://img-blog.csdnimg.cn/1379ac6bbc2d4d649e87bd0c3e09a421.png)


**3、引用的本质**


引用的本质在c++内部实现是一个指针常量. Type& ref = val; // Type\* const ref = &val;


c++编译器在编译过程中使用常指针作为引用的内部实现,因此引用所占用的空间大小与指针相同,只是这个过程是编译器内部实现,用户不可见



int data = 10;int &a = data;//a就是data的别名
//编译器内存转换:int * const a = &data;

a=100;//等价于data=100
//*a = 100;//*a == data


### **4、指针的引用**



#include<stdlib.h>
#include<string.h>
void my_str1(char **p_str)//p_str = &str
{
//*p_str == *&str == str
*p_str = (char *)calloc(1,32);
strcpy(*p_str, “hello world”);

return;
}
void my_str2(char* &my_str)//char* &my_str = str;my_str等价str
{
my_str = (char *)calloc(1,32);
strcpy(my_str, “hello world”);
return;
}
void test07(){
char *str = NULL;

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

618668825)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 16
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值