C语言 局部变量存储空间的分配和释放 奇怪现象及猜想
2014-08-28 15:37
666 查看
C语言 局部变量存储空间的分配和释放 奇怪现象及猜想
例如:
结果:
猜想一:哦那肯定是我记错了,改过来记吧,应该是“函数中的局部变量具有一直存在的固定的存储空间,每次函数调用时使用它,返回时也不释放,再次调用函数时它应该还能保持上次的值”。
猜想二:教材上明明说“局部变量的存储空间在每次函数调用时分配,在函数返回时释放”,那一定是教材写错了,教材也是人写的,是人写的就难免出错,哦,连C99也这么写的啊,C99也是人写的,也难免出错,或者C99也许没错,但是反正运行结果就是错了,计算机这东西真靠不住,太容易受电磁干扰和宇宙射线影响了,我的程序写得再正确也有可能被干扰得不能正确运行。
至于为什么出现这个现象以后解答。
例如:
#include<stdio.h> void foo(void){ int i; printf("%d\n", i); i = 777; } int main(void){ foo(); foo(); return 0; }
结果:
[root@localhost function]# ./function4.out 10067956 777
猜想一:哦那肯定是我记错了,改过来记吧,应该是“函数中的局部变量具有一直存在的固定的存储空间,每次函数调用时使用它,返回时也不释放,再次调用函数时它应该还能保持上次的值”。
猜想二:教材上明明说“局部变量的存储空间在每次函数调用时分配,在函数返回时释放”,那一定是教材写错了,教材也是人写的,是人写的就难免出错,哦,连C99也这么写的啊,C99也是人写的,也难免出错,或者C99也许没错,但是反正运行结果就是错了,计算机这东西真靠不住,太容易受电磁干扰和宇宙射线影响了,我的程序写得再正确也有可能被干扰得不能正确运行。
至于为什么出现这个现象以后解答。
相关文章推荐
- 验证局部变量存储空间的分配和释放
- 【C语言】结构体存储与空间分配
- 存储空间的动态分配与释放
- C++之存储空间的动态分配和释放
- C语言 结构体存储空间分配
- ADS下C语言中局部变量的存储位置分配
- ADS下C语言中局部变量的存储位置分配
- 局部变量的存储空间怎么分配和使用?
- 如何分配和释放存储空间
- 操作系统-c语言实现空闲块表的存储空间的分配和回收
- 存储空间的分配和释放
- 【C语言】结构体占用字节数及存储与空间分配
- C 存储空间的分配和释放
- C++ 动态存储空间的分配和释放 new与malloc的区别
- 一、C++ 分配与释放存储空间
- 存储空间的动态分配与释放
- C语言 结构体存储空间分配
- 二维指针、数组指针和指针数组存储空间的动态分配和释放
- C语言 二维数组动态分配和释放 [转]
- C语言中结构体大小计算即存储分配