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

Posted STM32嵌入式开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言面试中的问题-指针和引用的使用场景?相关的知识,希望对你有一定的参考价值。

先解决两个疑问:

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

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

01  指针和引用的不同之处

    看如下代码:

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

不同之处:

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

02  指针和引用使用场合

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

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

答案如下:

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

    指针可以毫无约束的操作内存中的任何东西,功能十分强大,但也很危险,所以可以在恰当的时机使用引用。

    当你需要指向某个东西,绝不会让其指向其它东西,例如有些函数参数为了避免拷贝可以使用引用,或者实现一个操作符而其语法需求无法由指针达成,例如vec[3]=3,可以使用引用,而其它任何时候,都要使用指针。

以上是关于C语言面试中的问题-指针和引用的使用场景?的主要内容,如果未能解决你的问题,请参考以下文章

C 语言指针间接赋值 ( 间接赋值三要素 | 间接赋值 使用的三种场景 )

C语言中的指针和内存泄漏

转C 语言中的指针和内存泄漏

简述指针和引用的区别与使用场景

C++11 ——— 右值引用和移动语义

c++c++面试知识6——第六章 语言特性相关