賦值的意思 發(fā)現(xiàn)一個(gè)C語(yǔ)言BUG,定義int變量時(shí)靠近c(diǎn)har的變量會(huì)變成0,是什么原因?
發(fā)現(xiàn)一個(gè)C語(yǔ)言BUG,定義int變量時(shí)靠近c(diǎn)har的變量會(huì)變成0,是什么原因?許多開發(fā)人員都有過這樣的經(jīng)歷。當(dāng)他們被一些奇怪的問題弄得精疲力盡時(shí),他們開始懷疑開發(fā)環(huán)境、編譯器、運(yùn)行時(shí),甚至生命周期。是
發(fā)現(xiàn)一個(gè)C語(yǔ)言BUG,定義int變量時(shí)靠近c(diǎn)har的變量會(huì)變成0,是什么原因?
許多開發(fā)人員都有過這樣的經(jīng)歷。當(dāng)他們被一些奇怪的問題弄得精疲力盡時(shí),他們開始懷疑開發(fā)環(huán)境、編譯器、運(yùn)行時(shí),甚至生命周期。是的,我也遇到過,但是我最終發(fā)現(xiàn)開發(fā)環(huán)境、編譯器、運(yùn)行時(shí)都有漏洞,中獎(jiǎng)概率太低,比中獎(jiǎng)概率低。問題還是我們自己的,但定位問題的過程比較曲折。
在這種情況下,變量的值是不確定的。它可以是任意值或0。
2. 變量在某個(gè)時(shí)間會(huì)被其他地方修改,例如通過指針修改,或者在調(diào)用函數(shù)時(shí)通過引用修改。這兩種方法在代碼級(jí)別可能不是很直觀,很容易被忽略。
所以受試者可以根據(jù)我說(shuō)的情況來(lái)分析定位問題。
在c語(yǔ)言中沒有對(duì)一個(gè)變量賦值它的值是否自動(dòng)賦0?
沒有靜態(tài),默認(rèn)為自動(dòng)類型,此時(shí),不要給出初始值,變量的初始值是隨機(jī)的。如果添加了static,并且沒有給定初始值,則默認(rèn)情況下變量的初始值為0。不能說(shuō)不設(shè)置初始值就不行。對(duì)于局部變量,如果不設(shè)置初始值,其中就有一個(gè)隨機(jī)值,沒有人知道它是多少。在C語(yǔ)言中,如果按存儲(chǔ)空間劃分,它包括:整數(shù)變量(code為int),整數(shù)變量包括長(zhǎng)整數(shù)變量(code為long int),短整數(shù)變量(code為short int),字符變量(code為char),浮點(diǎn)變量(code為float)等,它可以直接賦值而無(wú)需聲明,以確定變量類型的語(yǔ)言。這種語(yǔ)言變量的聲明通常稱為弱類型。例如,(C等)必須在使用前聲明,而變量類型必須在聲明時(shí)確定。這是嚴(yán)格的數(shù)據(jù)類型。