如果没有分配int和char的固定赋值吗?

时间:2017-09-17 17:58:17

标签: c

#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的值总是改变所以为什么不是两个随机改变每次我编译?

我错过了任何概念吗?

1 个答案:

答案 0 :(得分:0)

像你这样的局部变量是自动变量。它们被分配在堆栈内存中,它们的值是垃圾。

全局变量隐式具有静态存储类,默认情况下值为0

由于m是局部变量,因此其值不必总是相同。这是不确定的。此内存位置可以提供给其他进程。