|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
C++论坛
→
『 C++教室 』
→ 局部变量
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
409
人关注过本帖
标题:
局部变量
只看楼主
加入收藏
我爱你丁长青
等 级:
新手上路
帖 子: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
快速回复:
局部变量
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.027685 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved