弄清C语言中的变量未赋值时的初始值问题
2008-04-13 23:58
344 查看
/*
程序目的:弄清C语言中的变量未赋值时的初始值问题
测试结果:在C语言中,全局变量和静态变量,如果没有赋初值,则默认初始值int,float,char,空指针
分别为0.0.0.'\0',0~~~~~~~除了全局变量和静态变量以外,其它变量如果没有赋初值,则默认初始值为
内存中的垃圾内容,对于垃圾内容不能有任何假设.
这些规则对于数组\结构体和联合体也同样适用
用malloc()和realloc()动态分配的内存也可能存在垃圾内容.因此在使用变量前最好都赋初值.
*/
#include<stdio.h>
#define N 10
int a,b
;
char c,*m;
void main()
{
static int p,q
,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();
}
程序目的:弄清C语言中的变量未赋值时的初始值问题
测试结果:在C语言中,全局变量和静态变量,如果没有赋初值,则默认初始值int,float,char,空指针
分别为0.0.0.'\0',0~~~~~~~除了全局变量和静态变量以外,其它变量如果没有赋初值,则默认初始值为
内存中的垃圾内容,对于垃圾内容不能有任何假设.
这些规则对于数组\结构体和联合体也同样适用
用malloc()和realloc()动态分配的内存也可能存在垃圾内容.因此在使用变量前最好都赋初值.
*/
#include<stdio.h>
#define N 10
int a,b
;
char c,*m;
void main()
{
static int p,q
,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();
}
相关文章推荐
- C语言变量赋值问题
- c语言字符串变量赋值问题
- C语言变量赋值问题
- 关于c语言中变量赋值问题
- 关于c语言中变量赋值问题
- C语言中变量未赋值问题总结
- 变量的解构赋值---圆括号问题
- ajax请求获取的数据无法赋值给全局变量问题总结
- Java未赋值变量的默认初始值
- [置顶]Ajax回调数据赋值给变量的问题
- C语言中全局变量赋值的陷阱
- vue 中data初始化变量赋值null或{}的问题
- c语言头文件中定义全局变量的问题
- c语言变量声明位置,逗号问题
- C#变量初始化问题:字段初始值无法引用非静态字段、方法或属性
- c语言变量赋值,初始化
- C语言自动变量的潜在问题
- AJAX回调函数内部给全局变量赋值的问题与解决
- C常见问题之对结构变量的整体赋值问题
- [C#]变量初始化问题:字段初始值无法引用非静态字段、方法或属性