您好、欢迎来到现金彩票网!
当前位置:老k棋牌 > 栈区 >

关于存储类别问题(2)

发布时间:2019-06-12 22:19 来源:未知 编辑:admin

  上一篇推送说到了存储类别的问题,这里就跟大伙详细说说。我们就从C语言的存储类别讲起,一个编译的C程序占用的内存分为以下几个部分:

  1、栈区(stack)—也称自动类型存储区,由编译器自动分配释放,存放函数的参数值,局部变量的值等,例如函数调用结束后自动释放。

  2、堆区(heap)—也称动态分配内存区,由程序员分配释放,从分配到程序结束为止,若不释放,程序结束时可能由OS回收,比如malloc分配的内存,free释放的内存。

  3、全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域,程序结束后由系统释放。

  解析:main函数中重新声明变量i和j,j的值未初始化,因此用j给本身f赋值结果未定义,而if语句中声明k变量,此时k变量的作用域仅到if语句结束,因此,如果开始没有声明全局变量k,编译将不通过,错误原因是k未声明,而此程序开始就声明了全局变量k,后面k默认为全局变量,全局变量未初始化则默认初始化为0,所以k++打印的是0,但k变为1,答案为未定义,0.返回搜狐,查看更多

http://theenigmaco.com/zhanqu/74.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有