请问面试中如何区分引用传递和指针传递的区别?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1945个文字,预计阅读时间需要8分钟。
在Garena最近的面试中,面试官提出了一个问题:C++中引用传递和指针传递的区别?根据我的经验,想到了swap函数。虽然只知道可以使用引用来实现,也知道可以用指针来实现,但具体到二这一步,就有点模糊了。以下是我对这两个传递方式的简要总结:
1. 引用传递: - 引用是变量的别名,与原变量共享同一内存地址。 - 修改引用的值,原变量的值也会相应改变。 - 优点:语法简单,易于理解。 - 缺点:不能用于传递大型数据结构,因为引用本身会占用内存。
2. 指针传递: - 指针存储的是变量的内存地址。 - 修改指针指向的内存地址中的值,原变量的值也会改变。 - 优点:可以用于传递大型数据结构,节省内存。 - 缺点:语法相对复杂,容易出错。
至于swap函数,可以使用引用传递或指针传递来实现。以下是两种实现方式的示例:
cpp// 引用传递void swap(int &a, int &b) { int temp=a; a=b; b=temp;}
// 指针传递void swap(int *a, int *b) { int temp=*a; *a=*b; *b=temp;}
总结:引用传递和指针传递各有优缺点,具体使用哪种方式取决于实际需求。
最近Garena面试的过程中,面试官提了一个问题,C++中引用传递和指针传递的区别?
根据自己的经验,联想到了swap函数,只知道既可以用引用来实现,又可以用指针传递来实现,至于二者有何区别,自己还真没有考虑过。
痛定思痛,受虐之后,赶紧弥补自己的知识漏洞。
通过在网上搜集资料,自己也整理了一下。
本文共计1945个文字,预计阅读时间需要8分钟。
在Garena最近的面试中,面试官提出了一个问题:C++中引用传递和指针传递的区别?根据我的经验,想到了swap函数。虽然只知道可以使用引用来实现,也知道可以用指针来实现,但具体到二这一步,就有点模糊了。以下是我对这两个传递方式的简要总结:
1. 引用传递: - 引用是变量的别名,与原变量共享同一内存地址。 - 修改引用的值,原变量的值也会相应改变。 - 优点:语法简单,易于理解。 - 缺点:不能用于传递大型数据结构,因为引用本身会占用内存。
2. 指针传递: - 指针存储的是变量的内存地址。 - 修改指针指向的内存地址中的值,原变量的值也会改变。 - 优点:可以用于传递大型数据结构,节省内存。 - 缺点:语法相对复杂,容易出错。
至于swap函数,可以使用引用传递或指针传递来实现。以下是两种实现方式的示例:
cpp// 引用传递void swap(int &a, int &b) { int temp=a; a=b; b=temp;}
// 指针传递void swap(int *a, int *b) { int temp=*a; *a=*b; *b=temp;}
总结:引用传递和指针传递各有优缺点,具体使用哪种方式取决于实际需求。
最近Garena面试的过程中,面试官提了一个问题,C++中引用传递和指针传递的区别?
根据自己的经验,联想到了swap函数,只知道既可以用引用来实现,又可以用指针传递来实现,至于二者有何区别,自己还真没有考虑过。
痛定思痛,受虐之后,赶紧弥补自己的知识漏洞。
通过在网上搜集资料,自己也整理了一下。

