打印
[开发资料]

C语言面试-指针和引用的使用场景?

[复制链接]
93|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
classroom|  楼主 | 2023-9-22 11:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 classroom 于 2023-9-22 11:22 编辑

先解决两个疑问

◆ 指针和引用的不同之处是什么?

◆ 何时用用指针?何时用引用?

指针和引用的不同之处

    看如下代码:


    指针是用来表示内存地址的,而指针这个整数正是被指向的变量地址。

    而引用就是给变量重新起了一个名字,引用也就是“别名”。

不同之处

◆ 指针在声明时可以暂时不初始化,当然每次使用指针时都要做检查,以防出现空指针异常的问题0。而引用***都不会为空,它一定得代表某个对象。



◆ 指针存放的是地址,可以被重新赋值。而引用总是指向它最初代表的那个对象。

指针和引用使用场合

    引用主要是作为函数的参数和返回值来使用的,看如下代码:



    通过vec[3] =3可改变vector容器的值,这是因为[]操作符返回的就是引用。也就是为内部的变量取了一个别名,还能让[]操作符返回一个指针,即*vec[3]=3。实际上引用可以做的事情指针都可以做,那为什么还要使用引用?

总结

    用恰当的工具做恰如其分的工作。

    指针可以毫无约束的操作内存中的任何东西,功能十分强大,但也很危险,所以可以在恰当的时机使用引用。当你需要指向某个东西,绝不会让其指向其它东西,例如有些函数参数为了避免拷贝可以使用引用,或者实现一个操作符而其语法需求无法由指针达成,例如vec[3]=3,可以使用引用,而其它任何时候,都要使用指针。

使用特权

评论回复
沙发
小小蚂蚁举千斤| | 2023-9-22 17:59 | 只看该作者
指针存放的是地址,可以被重新赋值。而引用总是指向它最初代表的那个对象。

使用特权

评论回复
板凳
中国龙芯CDX| | 2023-12-21 08:48 | 只看该作者
指针可以毫无约束的操作内存中的任何东西,功能十分强大

使用特权

评论回复
地板
forgot| | 2023-12-21 08:54 | 只看该作者
指针是用来表示内存地址的,而指针这个整数正是被指向的变量地址。

使用特权

评论回复
5
星辰大海不退缩| | 2023-12-21 12:41 | 只看该作者
用恰当的工具做恰如其分的工作。

使用特权

评论回复
6
szt1993| | 2023-12-21 20:07 | 只看该作者
引用主要是作为函数的参数和返回值来使用的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

289

主题

1223

帖子

1

粉丝