c语言 初始化

Python020

c语言 初始化,第1张

C语言中定义int变量,默认值是多少

专业回答

区分变量的类型,有两种情况。

1 局部变量。

局部变量在没有显式初始化时,其值C语言规范没做要求,可以是随机值,也可以是编译器随意给定的值。

比如gcc编译器的局部变量就是随机值,可能为任何值。而微软的编译器,如VC或VS,则会初始化为全c,即0xCCCCCCCC。

2 全局变量或静态局部变量。

所有的全局变量,即定义在函数外的变量,默认值为0。

所有的静态局部变量,即定义在函数内部的

static int name

形式的,默认初始化为0。

满意回答

如果是定义的全局变量或者静态变量,未初始化的话就是0.如果是局部变量,那就是以前残留在堆栈里的随机值。

摘自百度知道

按作用域,C语言一般分为全局变量和局部变量。全局变量一旦声明就被默认初始化为适当类型的0,而局部变量被声明的时候其值是不可预料的,所以为了后续程序的正常使用,最好将其认为地初始化,否则有时会有灾难性的后果!第二个问题,例如:int main() { char a;//没有被初始化,可以在后面初始化,一般没危险性 char *p = &a;// 已初始化,指针p被赋予变量a的地址 char *q;//没有被初始化,相当危险!因为指针q是局部变量,此时的值是不确定,可能指向系统的重要数据,一旦在此变量被初始化前遇到类似下面的语句,就危险了: q = &a;}