首页  

c语言存储区域和局部变量默认初始值     所属分类 c 浏览量 836
C语言中,定义局部变量时如果未初始化,值不确定 

定义局部变量,其实就是在栈中通过移动栈指针来给程序提供一个内存空间和这个局部变量名绑定
因为这段内存空间在栈上,而栈内存是反复使用的(脏的,上次用完没清零的)
局部变量定义时如果不显式初始化,值是不确定的

只有局部变量在未赋初值时,才是随机的
全局变量和静态变量未赋初值时编译器会自动将其初始化为0

局全局变量和静态变量 数据段中的分配 

四大存储区域

1.代码区    主要存储程序代码指令,define定义的常量
2.数据区    主要存储全局变量(常量),静态变量(常量),常量字符串
3.栈区      主要存储局部变量,栈区上的内容只在函数范围内存在,当函数运行结束,自动销毁 ,效率高,但内存大小有限。
4.堆区      malloc free 手动管理

int x;
int main(){
  int i,j,k ;
  printf("x=%d,i=%d,j=%d,k=%d\n",x,i,j,k);  
}


x=0,i=1,j=359108645,k=32766
x=0,i=1,j=346152997,k=32766
x=0,i=1,j=237486117,k=32766

上一篇     下一篇
new和malloc的区别

堆和栈的区别

c语言中定义和声明的区别

神奇的js

C/C++常用库及工具

物联网五大核心技术