读书人

是不是小弟我多想了

发布时间: 2012-03-29 12:53:12 作者: rapoo

是不是我多想了?
不是说在一个函数内定义的变量在函数退出时就会注销吗?
那么这个代码为什么还会成功呢?

C/C++ code
#include<iostream>using namespace std;int main(){    int sumab(int,int);    int a=1,b=2,c=0;    c=sumab(a,b);    cout<<c<<endl;}int sumab(int a,int b){    int c=0;        ;c是局部变量啊     c=a+b;    return c;        ;返回了局部变量,这个局部变量不是在函数退出是就没有了吗 }


[解决办法]
没搞懂你在说什么??main()函数域和sumab()函数是两个域.所以相同的名称不一定意味着一样东西。我也是新手。
[解决办法]
所以main()函数的c和sumab()的c不是一个东西,sumab()里的c消失了,但是main()域的c仍然存在。
[解决办法]
那个变量是不存在了,
但是,这个变量的值传出来了。
以后你用的是哪个变量的值,也就是说是哪个变量的内容,而不是那个变量本身。
[解决办法]
c是你的函数的返回值,c的确是没了,但你的sumab函数有了和c一样的值。

读书人网 >C++

热点推荐