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