c++语言初学-return返回值
3399 点击·0 回帖
![]() | ![]() | |
![]() | 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.atcpu.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.如果传递的是变量,而且返回的也是变量,也可以正确返回。但是它创建一个副本返回时,如果不及时接收的话,会消失。 注意:永远不要返回本地变量的指针和,会有错误; | |
![]() | ![]() |