默認(rèn)參數(shù)值 在C 中,函數(shù)參數(shù)默認(rèn)值為什么不允許為局部變量呢?
在C 中,函數(shù)參數(shù)默認(rèn)值為什么不允許為局部變量呢?因?yàn)槌绦蛟谶\(yùn)行時(shí)會(huì)打開(kāi)內(nèi)存空間并初始化程序中定義的變量,函數(shù)在調(diào)用時(shí)會(huì)為函數(shù)體中定義的參數(shù)和變量打開(kāi)內(nèi)存空間。具有默認(rèn)參數(shù)的函數(shù)在為參數(shù)打開(kāi)空間后,
在C 中,函數(shù)參數(shù)默認(rèn)值為什么不允許為局部變量呢?
因?yàn)槌绦蛟谶\(yùn)行時(shí)會(huì)打開(kāi)內(nèi)存空間并初始化程序中定義的變量,函數(shù)在調(diào)用時(shí)會(huì)為函數(shù)體中定義的參數(shù)和變量打開(kāi)內(nèi)存空間。具有默認(rèn)參數(shù)的函數(shù)在為參數(shù)打開(kāi)空間后,將首先為參數(shù)指定默認(rèn)值。如果沒(méi)有要傳遞的參數(shù),則參數(shù)值為默認(rèn)值,并且必須更改默認(rèn)值只有當(dāng)系統(tǒng)能夠找到確切值時(shí),才可以初始化具有默認(rèn)值的參數(shù)。局部變量在被調(diào)用的函數(shù)中沒(méi)有定義(參數(shù)在函數(shù)的開(kāi)頭定義),或者在被定義并在其他函數(shù)中使用后被釋放。因此,系統(tǒng)無(wú)法找到要分配給參數(shù)的精確值,因此函數(shù)參數(shù)的默認(rèn)值無(wú)效。允許使用局部變量。