2016 - 2024

感恩一路有你

怎样解决未初始化的局部变量 C语言,使用了未初始化的局部变量?

浏览量:1628 时间:2021-03-11 10:42:58 作者:admin

C语言,使用了未初始化的局部变量?

当局部变量未初始化且在第一次赋值之前引用了该变量的值时,将报告使用未初始化局部变量的警告或错误。

局部变量以

type var=init的形式定义,其含义是定义一个类型为var的局部变量,并将其初始化为init value。

其中,=init值部分可以省略。此时,VaR的初始值将是一个随机值,由编译器或运行环境决定。

如果初始值未知的VaR是由

type VaR

定义的,并且其值在赋值前被引用,例如打印、参与计算等,则VaR的值是不确定的。从某种意义上说,此时输出什么值对程序的结果没有意义。

因此,如果发生这种情况,编译器将发出警告或错误,以提醒存在这种不确定因素。

对于大多数编译器来说,这只是一个警报,而不是一个错误。这个局部变量将有一个未知值,这是非常不可靠的。它可能是调用其他子例程后临时删除的数据的一部分。要正确运行算法,必须初始化局部变量。

“使用了未初始化的局部变量”是什么意思啊?应该怎么改啊?

Int(*b)[3]表示b是指向数组的指针。在使用指针之前,您需要给它赋值,即让指针变量存储一个地址,例如:int c[3]B=c。要实现您所说的功能,只需将指针p指向要分配的数字(即将源地址存储在p中),然后使用*p访问该数字。代码如下:int b[3][3]int*P for(I=0I

使用了未初始化的局部变量怎么处理?

这是一个会导致程序失败的错误。

编程的一个原则是,在定义变量(方法)之前不能使用它。

使用了未初始化的局部变量是什么?

显然,I和y都是局部变量。I的初始值是0,但y是尚未初始化的局部变量。

例如:

int main{int i=0

int y

For(i

//…

}

extended data:

C中初始化的全局变量在编译时保存在数据部分,而未初始化的全局变量保存在BSS部分。这样保存的原因是数据段中的变量需要分配空间来存储编译文件中的变量值

在不初始化的情况下,保存的变量(或初始化为0的静态变量和全局变量)的默认值为0。不需要在数据段中存储所有值为0的变量,而BSS段仅为未初始化的全局变量和局部静态变量保留位BSS段没有内容。

但是,这些变量将在程序执行期间占用内存空间,因此可执行文件必须在BSS段中记录变量占用的空间。

怎样解决未初始化的局部变量 C语言怎么初始化局部变量 未初始化变量怎么解决

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。