为什么main函数中定义的变量的局部变量的地址每次运行不一样

C语言中,这个main函数里定义的变量是全局变量还是局部变量?_百度知道
C语言中,这个main函数里定义的变量是全局变量还是局部变量?
那么如何在main函数里定义全局变量?
放在main函数里定义的变量任然是局部变量,全局变量要放在所有函数(包括main)的外部,例如:#include&&stdio.h&int&x,y,z;void&year(int&a,int&b,int&c);int&main(){&int&i,a,b,c;&for(i=1;i&=1;i++)&{&scanf(&%d,%d,%d&,&a,&b,&c);&printf(&a=%d\n&,a);&printf(&b=%d\n&,b);&printf(&c=%d\n&,c);&year(a,b,c);&&system(&PAUSE&); &&return&0;&}}void&year(int&a,int&b,int&c){ printf(&现在是%d年%d月%d日\n&,a,b,c);}这里x y z就是全局变量,其他都是局部变量
采纳率:61%
是局部变量啊= =全局变量是在函数值外定义的变量【包括主函数、所以在main函数中定义的变量也是局部变量
本回答被提问者采纳
仍然是局部变量。只要是在函数体内部定义的变量就是局部变量。有效范围从定义定义点开始到函数体结束;main 是一个函数,所以,在其中定义的变量仍然是局部变量。
是局部变量。外面的方法是无法调用main函数的变量,除非传参数过去定义全局变量的话直接在main函数外面定义啊
其他1条回答
为您推荐:
其他类似问题
全局变量的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。8被浏览150分享邀请回答2添加评论分享收藏感谢收起0添加评论分享收藏感谢收起写回答千里之行 始于足下
欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 1933 人关注过本帖
标题:main()函数中的变量(局部动态变量),编译阶段分配内存?
等 级:论坛游民
帖 子:89
专家分:10
结帖率:61.9%
&&问题点数:0&&回复次数:7&&&
main()函数中的变量(局部动态变量),编译阶段分配内存?
比如如下一个简单的求和程序:
#include&stdio.h&
void main()
{int a,b,c;
printf(&%d\n&,c);
main()函数中的a,b,c都是局部动态变量,都在栈存储区,我想问:给a,b,c分配地址的时候,是在编译阶段完成的吗?
当然,用户自己定义的函数中的形参和自定义函数中的变量也是栈变量,它们是在运行阶段动态分配的。
-------------------------------------------------------------------
[ 本帖最后由 suishuhao 于
19:30 编辑 ]
搜索更多相关主题的帖子:
来 自:何方
等 级:版主
威 望:164
帖 子:6755
专家分:41955
局部变量的内存也不是编译时候分配,是在运行时候调整一下esp而已,这块地址是栈上面的,编译时候怎么分配?
只是这个大小在编译时候就已经确定了的
你看一下汇编代码就知道了
[ 本帖最后由 yuccn 于
19:25 编辑 ]
我的博客:
http://blog.yuccn. net
等 级:论坛游民
帖 子:89
专家分:10
以下是引用yuccn在 19:24:14的发言:
局部变量的内存也不是编译时候分配,是在运行时候调整一下esp而已,这块地址是栈上面的,编译时候怎么分配?
只是这个大小在编译时候就已经确定了的
你看一下汇编代码就知道了谭浩强 《C程序设计》第三版 219页 第十章 说:在对程序编译时,系统会给这个变量分配内存单元
&&&&&&&&&&&&&&&&&&&&&&&&&&&40页:每一个变量被指定为一个确定类型,在编译时就能为其分配相应的存储单元。
谭浩强的书在内存管理、编译连接等方面讲的狠迷糊啊。。。。。。。。。
[ 本帖最后由 suishuhao 于
19:45 编辑 ]
等 级:贵宾
威 望:304
帖 子:25793
专家分:48814
谭书的说法是对的,你对“分配”的理解狭隘了而已。
授人以渔,不授人以鱼。
等 级:新手上路
顶版主一下
等 级:新手上路
帖 子:12
高手一般都会在里面添加void
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
以下是引用suishuhao在 19:27:38的发言:
谭浩强 《C程序设计》第三版 219页 第十章 说:在对程序编译时,系统会给这个变量分配内存单元
&&&&&&&&&&&&&&&&&&&&&&&&&&&40页:每一个变量被指定为一个确定类型,在编译时就能为其分配相应的存储单元。
谭浩强的书在内存管理、编译连接等方面讲的狠迷糊啊。。。。。。。。。
我觉得确实是这样 这也算谭老师书的一个缺点罢
等 级:论坛游民
帖 子:32
专家分:77
像这些动态变量不会在编译里分配的!都是在调用当前函数时分配!函数执行完后又释放空间!
版权所有,并保留所有权利。
Powered by , Processed in 0.311877 second(s), 7 queries.
Copyright&, BCCN.NET, All Rights Reserved鍙?渶涓}

我要回帖

更多关于 python 函数 局部变量 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信