首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

一个简单的c语言问题,请各位不吝赐教。

RAM中的变量分为全局变量和局部变量。对于全局变量,应该没什么问题。但对于局部变量,若采用第一种形式,而在int a=5和function{a+=3}之间运行过别的函数或程序(即使程序中它们中间没有别的代码,也可能运行中断程序等),则不能保证a的初始值。所以最好采用第二种形式。
海纳百川  有容乃大
全局变量在RAM中占一个固定的地址,当函数调用某个全局变量时,程序员应该知道此时它的数值所代表的含义,而不会是一个随机的数。全局变量可以用来传递参数。
但局部变量并没有固定的地址,它分配在堆栈中,只是调用某个函数时,才临时分配一个地址。当函数调用结束时,堆栈空间就会释放。局部变量不能用于传递参数。
海纳百川  有容乃大
可能我第一个帖子的描述不是很准确。但不管怎样,只要各位能了解全局变量和局部变量的具体物理规程,在编程中就能自如地运用,也就不必拘泥于某些书本上的句子了。
海纳百川  有容乃大
返回列表