本文主要是介绍【CPP】引用 -- reference,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这里是oldking呐呐,感谢阅读口牙!先赞后看,养成习惯!
个人主页:oldking呐呐
专栏主页:深入CPP语法口牙
1 语法糖
- 语法糖指在编程语言原有语法的基础上扩展的语法形式,语法糖的使用会让代码更加简洁,可读性更高
- 例如:中文中的"什么"和"啥"这样的关系,"什么"是"官方正经"的语法形式,而"啥"则就是语法糖,听着稍微偏门一些但确实更加简洁了
2 引用 – reference
- 引用是一种CPP中的语法糖,一般我们用它解决传址调用出现的频繁解引用的问题,它可以代替一部分指针的作用
2.1 引用在非函数定义中的使用
- 引用可以当作一个变量使用,但定义的引用在内存中并不存在,你可以理解为变量的一个别称,类似于
typedef
,只不过typedef
是给类型取别名,而引用是给变量取别名
int a = 10;
int& ref = a;ref = 1; //此时a就被改成了1了
- 在以上代码,ref即a的引用,值得注意的是,这里ref的类型应该是
int&
,&
和int
应该是一体的- 编译过后
ref
会被替换成a
,原本的ref
和ref
的定义会直接消失
- 如果你想中途更改ref引用的目标变量,那请你把ref改成指针,因为ref压根就不能改
int a = 10;
int b = 20;int& ref = a;ref = b; //这样做相当于把b的值赋值给a,ref依旧引用a
2.2 引用在函数定义中的使用
- 引用在函数定义中用于替代一部分指针的作用,用于避免频繁解引用指针变量,使代码更加简洁美观,在函数定义中的引用只可以在函数内部使用
void add(int* ret, int* x, int* y)
{*ret = *x + *y;
}
- 在使用了引用之后的效果
int main()
{int x = 1;int y = 2;int ret = 0;add(ret, x, y); //这里不需要传地址进去return 0;
}
void add(int& ret, int& x, int& y)
{ret = x + y; //这里的效果和传址调用是一样的,肉眼可见的简洁啊
}
这篇关于【CPP】引用 -- reference的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!