指針為空是什么意思?
指針為空,這是一個(gè)賦給0的指針。對(duì)于空指針值,一般文檔中常用它來(lái)表示,但要明確的是,對(duì)于指針類(lèi)型,它是返回的。NULL和返回0是完全等價(jià)的,因?yàn)镹ULL和0都表示空指針。
c語(yǔ)言怎么定義一個(gè)空數(shù)組?
如果你不t初始化數(shù)組,數(shù)組的值是未知的,根據(jù)不同的運(yùn)行環(huán)境,它的值是不同的。
因?yàn)閿?shù)組在定義后沒(méi)有初始化,所以數(shù)組的值是當(dāng)前內(nèi)存區(qū)域的值,這個(gè)值是不確定的(通常未初始化內(nèi)存區(qū)域的十六進(jìn)制值是0xcc)。
如果你想定義一個(gè)全零數(shù)組,你可以
intTCi[W]{0}
intTCo[W]{0}
這樣會(huì)自動(dòng)將數(shù)組區(qū)域清空為0(只要定義數(shù)組時(shí)數(shù)組被賦值,數(shù)組剩余未賦值的空間會(huì)自動(dòng)賦值為0)。
C語(yǔ)言定義指針變量為0是什么意思?
其實(shí)這種現(xiàn)象在C語(yǔ)言中是有定義的。
值為0的整數(shù)常量表達(dá)式或轉(zhuǎn)換為void*的表達(dá)式可以通過(guò)轉(zhuǎn)換、賦值或比較轉(zhuǎn)換為任何類(lèi)型的指針。結(jié)果將是一個(gè)空指針。
nullptr的使用?
在C語(yǔ)言中,NULL實(shí)際上是一個(gè)指向void*的指針,然后在將該指針賦給其他類(lèi)型的指針時(shí),會(huì)隱式地轉(zhuǎn)換成相應(yīng)的類(lèi)型。
如果用C編譯器編譯,會(huì)得到錯(cuò)誤,因?yàn)镃是強(qiáng)類(lèi)型的,void*不能隱式轉(zhuǎn)換成其他指針類(lèi)型。
為了解決C中的空指針問(wèn)題,在C中引入0來(lái)表示空指針。NULL是無(wú)類(lèi)型的,它是一個(gè)宏。Nullptr有一個(gè)類(lèi)型,類(lèi)型是std::nullptr_t
指針初始化時(shí)設(shè)置為0和NULL的區(qū)別?求高手解答~?
嗯,你可以理解為NULL是一個(gè)關(guān)鍵字。如果指針的值設(shè)置為null,則表示當(dāng)前指針為null,不指向內(nèi)存中的任何地址。當(dāng)指針設(shè)置為0時(shí),其本質(zhì)是在內(nèi)存中申請(qǐng)一個(gè)空間,將0放入其中,然后將0的內(nèi)存地址賦給指針。指針在使用前必須初始化,很多程序員喜歡在聲明指針或者初始化的時(shí)候賦值null。這是一個(gè)好的編程習(xí)慣,因?yàn)槿绻悴贿@樣做。;t初始化指針,指針會(huì)隨機(jī)指向內(nèi)存中的任意地址,也就是俗稱的"指針是浮動(dòng)的,這在現(xiàn)在的計(jì)算機(jī)系統(tǒng)中不算什么,但是在早期的計(jì)算機(jī)系統(tǒng)中,內(nèi)存泄露,系統(tǒng)崩潰(現(xiàn)在的操作系統(tǒng)通常會(huì)被系統(tǒng)或者編譯器報(bào)錯(cuò))。如果你仍然不不明白,請(qǐng)繼續(xù)提問(wèn),謝謝。