怎樣解決未初始化的局部變量 在c語言中,局部變量初始化是什么意思,要怎么初始化?
在c語言中,局部變量初始化是什么意思,要怎么初始化?C語言按范圍一般分為全局變量和局部變量。一旦聲明了全局變量,默認情況下它將被初始化為適當?shù)念愋?,而當聲明了局部變量時,它的值是不可預測的。因此,對
在c語言中,局部變量初始化是什么意思,要怎么初始化?
C語言按范圍一般分為全局變量和局部變量。一旦聲明了全局變量,默認情況下它將被初始化為適當?shù)念愋?,而當聲明了局部變量時,它的值是不可預測的。因此,對于后續(xù)程序的正常使用,最好是將其初始化得恰到好處,否則有時會造成災難性的后果!第二個問題,例如:intmain(){Chara;//未初始化。以后可以初始化。Char*P=&A;//已初始化。指針P給定了變量a的地址,char*q;//未初始化。太危險了!因為指針q是一個局部變量,此時的值是不確定的,它可能指向系統(tǒng)的重要數(shù)據(jù)。一旦在初始化此變量之前遇到類似于以下的語句,就很危險:q=&A;}
如果未初始化局部變量,并且在第一次賦值之前引用了該變量的值,則會報告使用未初始化的局部變量的警告或錯誤。
局部變量以
type var=init的形式定義,其含義是定義一個類型為var的局部變量,并將其初始化為init value。
其中,=init值部分可以省略。此時,VaR的初始值將是一個隨機值,由編譯器或運行環(huán)境決定。
如果初始值未知的VaR是由
type VaR
定義的,并且其值在賦值前被引用,例如打印、參與計算等,則VaR的值是不確定的。從某種意義上說,此時輸出什么值對程序的結果沒有意義。
因此,如果發(fā)生這種情況,編譯器將發(fā)出警告或錯誤,以提醒存在這種不確定因素。
對于大多數(shù)編譯器來說,這只是一個警報,而不是一個錯誤。