| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 409 人关注过本帖
标题:局部变量
只看楼主 加入收藏
我爱你丁长青
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2013-4-4
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
局部变量
#include<stdio.h>
void f2(int x,int y)
{
    x++;y++;
}
void f1(int x,int y)
{
    f2(x,y);
    printf("n=%d,x=%d=%d,y=%d\n",x,y);
}
void main()
{int n=2,a=3,b=4;
f1(a,b);
printf("n=%d,a=%d,b=%d\n",n,a,b);

}

请高手详细的解释一下程序是什么意思?
2013-06-14 22:38
潇翊
Rank: 3Rank: 3
来 自:湖北襄阳
等 级:论坛游侠
帖 子:39
专家分:131
注 册:2012-2-29
收藏
得分:7 
这个程序执行顺序是:1,n=2,a=3,b=4,然后调用f1函数,x=3,y=4;
                    2,在f1中,先调用f2,x++,y++,但是此时的x,y是f2的局部变量,改变的值出不来,所以还是打印 n=%d(即x)=3,x=%d(即y)=4,后面的y=%d直接省略掉;
                    3,最后回到main,继续打印 n=2,a=3,b=4;
综上所述,这个程序的意思就是让你理解 x,y在充当调用函数的变量时,作用范围只在此函数内部,并不会改变此函数外面的输出值,这就是局部变量。

神马都是浮云,技术才是王道!
2013-06-15 00:45
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:7 
main调用f1,f1调用f2,函数内部的变量都是私有的,存在于stack,即使同名,也没有关联

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-06-15 07:43
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
收藏
得分:7 
在主函数里面传递给函数f1的参数会在函数运行时自动拷贝一份在栈内存里面,函数运行时是对这些副本进行操作,因此不会对主函数中的变量造成任何影响。这就是局部变量,变量创建时可以选择3种类型的内存存储,如果是在静态存储区,变量的存活时间是整个程序。如果是在栈区,那么随着函数体结束会自动消亡。如果是在堆内存,那么同样会保留到整个程序结束或者主动释放内存。

C++菜鸟
2013-06-16 23:24
快速回复:局部变量
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049370 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved