自学内容网 自学内容网

c++入门--引用与指针,const与引用,NULL与nullptr

1.引用与指针:
1.1引用的介绍:

引用相当于一个变量的别名,向函数传参后或者在main函数中可以直接对这个变量进行操作。

1.2引用的返回:

函数返回的时候是生成了一个临时变量,这个变量具有常性,是不能对这个值进行修改的。但是如果返回的是int&的话,那么就是它的别名,那当然是可以进行操作的。(常量(const)具有常性,意味着一旦被定义为常量,它的值就不能被修改。)而且这种情况也出现在进行运算的时候,运算的结果首先也是保存在一个临时变量中。(为了方便说明,我们在后面的const的权放大和缩小处说明)

1.3引用与指针的对比:

(1)引用不需要开空间,但是指针需要开空间(但是实际上在汇编层引用实际上就是用指针的方式实现的)

(2)引用不容易出现野指针的情况,但是指针很容易就出现野指针的情况

  (3)引用在c++中没办法改变指向的对象

 (4)sizeof引用看的是引用的对象,但是指针看的是平台的

(5)引用一定是需要初始化的,但是指针是不一定需要的


2.const的权值(可以缩小,可以平移,不能放大)

从图中可以看出,权值是可以平移缩小但是不能放大的。

后面b是为了验证运算时也会产生一个临时变量,具有常性,所以后面函数传参时一般都是(const int& ~)这样只是为了保证可以传参更舒服。因为不这么写根本传不进去hh,接收一定需要用const。


3.null与nullptr

null在c++中为0,所以如果函数重载那么就会出现下面这个bug的情况

但是如果你去用c语言也会g,因为如果是传(void*)0进去的话,因为c语言它转不了int*类型,指针类型会不匹配。

在c++中,新增了一个nullptr,这个是(void*)0,但是把它当参数传入时,它会自动类型转化。


原文地址:https://blog.csdn.net/2301_81172092/article/details/143807350

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!