C语言中函数返回值是如何处理的长尾词?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2924个文字,预计阅读时间需要12分钟。
目录+1、返回值+2、指针类型函数返回指针+3、返回引用+4、综合示例+优先,强调一点,函数传参与返回值类似+从某种角度上看,与传参一样,也分为三种:+返回值+1、返回引用+2、指针+3。
目录
- 1、返回值
- 2、指针类型的函数——返回指针
- 3、返回引用
- 4、综合示例
首先,强调一点,和函数传参一样,函数返回时也会做一个拷贝。
从某种角度上看,和传参一样,也分为三种:
- 返回值:返回任意类型的数据类型,会将返回数据做一个拷贝(副本)赋值给变量;由于需要拷贝,所以对于复杂对象这种方式效率比较低(调用对象的拷贝构造函数、析构函数);例如:int test(){}或者 Point test(){}
- 返回指针:返回一个指针,也叫指针类型的函数,在返回时只拷贝地址,对于对象不会调用拷贝构造函数和析构函数;例如:int *test(){} 或者 Point *test(){}
- 返回引用:返回一个引用,也叫引用类型的函数,在返回时只拷贝地址,对于对象不会调用拷贝构造函数和析构函数;例如:int &test(){}或者 Point &test(){}
一般来说,在函数内对于存在栈上的局部变量的作用域只在函数内部,在函数返回后,局部变量的内存会自动释放。
本文共计2924个文字,预计阅读时间需要12分钟。
目录+1、返回值+2、指针类型函数返回指针+3、返回引用+4、综合示例+优先,强调一点,函数传参与返回值类似+从某种角度上看,与传参一样,也分为三种:+返回值+1、返回引用+2、指针+3。
目录
- 1、返回值
- 2、指针类型的函数——返回指针
- 3、返回引用
- 4、综合示例
首先,强调一点,和函数传参一样,函数返回时也会做一个拷贝。
从某种角度上看,和传参一样,也分为三种:
- 返回值:返回任意类型的数据类型,会将返回数据做一个拷贝(副本)赋值给变量;由于需要拷贝,所以对于复杂对象这种方式效率比较低(调用对象的拷贝构造函数、析构函数);例如:int test(){}或者 Point test(){}
- 返回指针:返回一个指针,也叫指针类型的函数,在返回时只拷贝地址,对于对象不会调用拷贝构造函数和析构函数;例如:int *test(){} 或者 Point *test(){}
- 返回引用:返回一个引用,也叫引用类型的函数,在返回时只拷贝地址,对于对象不会调用拷贝构造函数和析构函数;例如:int &test(){}或者 Point &test(){}
一般来说,在函数内对于存在栈上的局部变量的作用域只在函数内部,在函数返回后,局部变量的内存会自动释放。

