一、引用
解释:c++与c一个不同之处就是出现了引用,引用可以用来对一段连续的内存空间起别名,其可以类似于使用指针的效果,其还常用于函数调用
1.普通使用
解释:可以类似于指针的效果修改值
-
指针
#include <stdio.h> #include <stdlib.h> void doit(int *b){ *b=66; } int main(){ int b=6; doit(&b); printf("%d",b);// 66 return 0; }
-
引用
#include <stdio.h> #include <stdlib.h> void doit(int &b){ b=66; } int main(){ int b=6; doit(b); printf("%d",b);// 66 return 0; }
2.简化使用
解释:这里举例一种例子,里面使用了二重指针(使用它的这种场景也很常见),如果单单使用二重指针会很麻烦(如下),但是使用引用会很简化
- 指针
#include <stdio.h>
#include <stdlib.h>
void doit(int **p){
int b=66;
*p=&b;
}
int main(){
int *p;
doit(&p);// 现在p是一个野指针,如果单单写b进去肯定不行,对p取地址这便是存放*p的真实地址
printf("%d",*p);// 66
return 0;
}
- 引用
#include <stdio.h>
#include <stdlib.h>
void doit(int* &p){
printf("%p\n",&p);//Ox65420
int b=66;
p=&b;
}
int main(){
int *p;
printf("%p\n",&p);//Ox65420
doit(p);
printf("%d",*p);// 66
return 0;
}