关于c语言程序的,概念问题,这句话对么

[复制链接]
查看11 | 回复5 | 2011-8-17 22:22:53 | 显示全部楼层 |阅读模式
“局部变量”的“生存期”只限于本次函数调用,因此不能将局部变量的运算结果保存至下一次调用
以上这句话对么?那如果是静态局部变量呢。。。静态局部变量不是会使用原来的存储单元么。

回复

使用道具 举报

千问 | 2011-8-17 22:22:53 | 显示全部楼层
一般的局部变量是保存在堆栈中函数结束后堆栈会被清空,局部变量也就不复存在了。静态的局部变量是保存在全局静态区域的,即使函数结束他仍然存在。再次调用时的值是上一次调用后的值。只要主函数没有结束他就一直存在。我刚学的时候在这点上走了不少弯路给你推荐篇文章吧。看了你会明白很多的。找了一圈没找到。你到网上搜林锐的C/C++高质量编程,在内存管理那一章有详细的介绍。希望可以帮到你。...
回复

使用道具 举报

千问 | 2011-8-17 22:22:53 | 显示全部楼层
任务的飘过...
回复

使用道具 举报

千问 | 2011-8-17 22:22:53 | 显示全部楼层
上面那句话是正确的,“局部变量”存在于临时为函数分配的栈空间中,函数退出时该函数的栈帧被销毁,因此局部变量也不复存在,但“静态局部变量”与之不同,它存放在程序的数据段内,数据段是在进程启动系统为其开辟内存空间时就分配的一段专门存放数据的内存,在进程退出前一直存在,所以静态局部变量的数据能够一直保存。...
回复

使用道具 举报

千问 | 2011-8-17 22:22:53 | 显示全部楼层
静态存储的变量在编译时分配固有的空间,在整个程序运行的期间都不改变,静态存储变量中的静态局部变量在某一函数的内部定义,只在此函数内能有效的使用,退出函数后不释放存储空间,下次进入此函数时保留上次退出时的值,若是静态外部变量在某一文件中所有函数之外(即头文件之下)定义,在此文件内有效,但不能被其他文件所引用。静态变量在说明时应加上static修饰符。外部变量要...
回复

使用道具 举报

千问 | 2011-8-17 22:22:53 | 显示全部楼层
做任务哈, 第四个了,嘻嘻...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行