搜索
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 局部变量
标题:
局部变量
只看楼主
我爱你丁长青
等 级:
新手上路
帖 子: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
潇翊
来 自:湖北襄阳
等 级:
论坛游侠
帖 子:39
专家分:131
注 册:2012-2-29
第
2
楼
得分: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
等 级:
千里冰封
威 望:
9
帖 子:1555
专家分:10000
注 册:2011-5-8
第
3
楼
得分:7
main调用f1,f1调用f2,函数内部的变量都是私有的,存在于stack,即使同名,也没有关联
经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-06-15 07:43
lzj12530
等 级:
蝙蝠侠
威 望:
2
帖 子:264
专家分:841
注 册:2013-3-28
第
4
楼
得分:7
在主函数里面传递给函数f1的参数会在函数运行时自动拷贝一份在栈内存里面,函数运行时是对这些副本进行操作,因此不会对主函数中的变量造成任何影响。这就是局部变量,变量创建时可以选择3种类型的内存存储,如果是在静态存储区,变量的存活时间是整个程序。如果是在栈区,那么随着函数体结束会自动消亡。如果是在堆内存,那么同样会保留到整个程序结束或者主动释放内存。
C++菜鸟
2013-06-16 23:24
4
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-415198-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.178778 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved