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