#include<stdio.h>
void main(void)
{ char m,n;
printf("%d\n",m);//value of m
printf("%d",n);//value of n
}
在上面的片段值m总是打印为0为什么?为什么它不会改变,即使多次编译它是自动分配,如果我们不分配,而n的值总是改变所以为什么不是两个随机改变每次我编译?
我错过了任何概念吗?
答案 0 :(得分:0)
像你这样的局部变量是自动变量。它们被分配在堆栈内存中,它们的值是垃圾。
全局变量隐式具有静态存储类,默认情况下值为0
。
由于m
是局部变量,因此其值不必总是相同。这是不确定的。此内存位置可以提供给其他进程。