弄清C语言中的变量未赋值时的初始值问题

/*
程序目的:弄清C语言中的变量未赋值时的初始值问题

测试结果:在C语言中,全局变量和静态变量,如果没有赋初值,则默认初始值int,float,char,空指针
分别为0.0.0.'\0',0~~~~~~~除了全局变量和静态变量以外,其它变量如果没有赋初值,则默认初始值为
内存中的垃圾内容,对于垃圾内容不能有任何假设.
这些规则对于数组\结构体和联合体也同样适用
用malloc()和realloc()动态分配的内存也可能存在垃圾内容.因此在使用变量前最好都赋初值.
*/

#include<stdio.h>
#define N 10
int a,b[N];
char c,*m;
void main()
{
 static int p,q[N],i;
 char e,*n;
 printf("%d,%d\n%d,%d\n%d\n",a,c,p,e,n);
 for(i=0;i<N;i++)
 {
  printf("%d ",q[i]);
 }
 getchar();
}

原文地址:https://www.cnblogs.com/calm/p/1151840.html