1.引用
例:Int &b=a;(&引用声明符)
本质:起别名,绑定初始值对象,引用必须初始化,且只能绑定一次
引用并非对象,只是对象的别名;
1.1 引用做函数参数
**作用:**函数传参时,可以利用引用的技术让形参修饰实参
**优点:**可以简化指针修改实参
1.2 引用做函数返回值*
作用:引用是可以作为函数的返回值存在的
注意:不要返回局部变量引用
用法:函数调用作为左值
1.3 引用的本质
引用的本质在c++内部实现是一个指针常量.
2.指针
指针本身是一个对象,无需初始化,可先后指向多个对象,指针类型必须和指向的对象类型严格匹配(除了void类型),不能直接把变量给指针,可以给常量直接给指针
指针定义:int p(指针类型-声明符-指针名)
获取地址:int*p=&val(&取地址符)
访问指针对象cout<<*p(解引用符)
空指针:int p=nullptr,或#include cstdlib; intp=0,或Intp=NULL
2.1指针赋值:
本质:令指针存放一个新地址,从而指向一个新的对象
例:p=&val(改变指针所指对象)
*p=0(改变指针的值,即所指对象的值被改变)
2.1指针作为条件
例:int( *p):检测的是指针所指对象的值,非0都为true
Int§:检测的是指针本身的值
2.2指向指针的指针
例:int val=0; int*p1=&val ; int *p2=&p1 ;
解引用:**p2
2.3指向指针的引用
引用本身不是对象,所以不能定义指向引用的指针
3.Const限定符
1.const必须初始化,一旦创建后其值就不能改变,不能做自增等一些算术操作
2.利用对象初始化const对象-拷贝
3.const对象仅在文件内有效,不同文件同名const对象,他们相当于分别独立,可以利用声明声明(只定义一次l)
3.1.常量引用
(1)不允许直接改变常量引用所绑定的对象:
3.2指针常量
指针常量属于底层const,指针所指对象是一个常量。
3.3.常量指针
常量指针属于顶层const,指针本身是常量
(1)必须初始化,初始化之后不能再赋值
(2)与指针常量的区别,从右往左阅读。