c++语言初学-return返回值
return 在执行之前会创建一个临时的变量,来保存要传回的值,
返回值:返回一个副本值,原本的已被消除
返回指针:当返回的时候,原指针空间会被消除,如果没有被其它程序使用,则是能正确返回,如果释放后被其它程序使用,则会有可能修改掉此空间内的值,返回值会错误;
什么样的值除了函数仍然有效:
1.全局变量;
2.static变量;因为static相当于一个全局变量,不会被系统回收
例:
[cpp]
#inlcude<iostream.h>
int& sum(int,int);
int main(void){
int x = 5,y = 10;
printf("%d\n",sum(x,y));
return 0;
}
int& sum(int a,int b){
static int x;
x = a+b;
return x;
}
3.int* p = new int;
返回p的时候,会产生一个p的副本,本身已经无效了,但是p的副本里www.zzzyk.com
存有它new出来的地址,所以是有效的。(对于地址没有手动释放是有效的
)
例:
[cpp]
int* small(int x,int y){
int* p = new int;
return p;
}
4.如果传递的是一个引用,而且返回的也是引用的话,则可以正确的返回,因为它是在函数外定义的。
[cpp]
#include<iostream>
int& max(int&,int&);
int main(){
int x = 15,y = 10;
printf("%d\n",max(x,y));
return 0;
}
int& max(int &a,int &b){
if(a>b)
return a;
else
return b;
}
5.如果传递的是变量,而且返回的也是变量,也可以正确返回。但是它创建一个副本返回时,如果不及时接收的话,会消失。
注意:永远不要返回本地变量的指针和引用,会有错误;
摘自 like7xiaoben
补充:软件开发 , C++ ,