这里是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; //这里的效果和传址调用是一样的,肉眼可见的简洁啊
}