c語言函數(shù)定義與聲明 調(diào)用遞歸函數(shù)會重復(fù)定義函數(shù)中的普通變量嗎?
調(diào)用遞歸函數(shù)會重復(fù)定義函數(shù)中的普通變量嗎?一般來說,遞歸只是在調(diào)用自己。與調(diào)用其他函數(shù)相同。對于一個函數(shù),當(dāng)它被調(diào)用時,它內(nèi)部的局部變量只在它內(nèi)部有效,獨立于外部調(diào)用函數(shù),并且在被調(diào)用函數(shù)返回后自動釋
調(diào)用遞歸函數(shù)會重復(fù)定義函數(shù)中的普通變量嗎?
一般來說,遞歸只是在調(diào)用自己。與調(diào)用其他函數(shù)相同。對于一個函數(shù),當(dāng)它被調(diào)用時,它內(nèi)部的局部變量只在它內(nèi)部有效,獨立于外部調(diào)用函數(shù),并且在被調(diào)用函數(shù)返回后自動釋放。因此,如果被調(diào)用函數(shù)只返回地址的值,例如整數(shù)或字符,則外部函數(shù)可以使用同一類型變量來保存返回地址的值。但是如果你返回一個數(shù)組,一個連續(xù)的地址,那么你只返回第一個地址,你不能一次保存所有的地址值。然后,當(dāng)函數(shù)調(diào)用結(jié)束時,這些地址被釋放,它們就消失了。所以我希望被調(diào)用的函數(shù)將數(shù)組返回給外部函數(shù)。全局?jǐn)?shù)組或malloc用于動態(tài)請求內(nèi)存并返回內(nèi)存。當(dāng)然,也可以在內(nèi)部遞歸地定位靜態(tài)變量。每個調(diào)用使用相同的內(nèi)存,靜態(tài)存儲不會自動釋放。
C 出現(xiàn)函數(shù)重復(fù)定義和聲明的原因有什么,要全一點的解釋?
這種重復(fù)的主要原因是沒有考慮函數(shù)的范圍。在同一范圍內(nèi),如果函數(shù)聲明和定義相同,則會出現(xiàn)錯誤。函數(shù)可以在不同的空間中定義而不是全局函數(shù),或者靜態(tài)全局函數(shù)可以用靜態(tài)函數(shù)定義。
C語言全局變量可以重復(fù)定義嗎?
(1)C語言中的全局變量不能重復(fù)定義,但需要注意的是,C語言函數(shù)中可以定義與全局變量同名的局部變量,全局變量將暫時失效。
(2)全局變量相對于局部變量。全局變量,也稱為外部變量,是在函數(shù)外部定義的變量。它不屬于哪個函數(shù),它屬于一個源程序文件。它的作用域是從定義變量的位置到源文件的結(jié)尾。說明:在函數(shù)中使用全局變量時,應(yīng)將其聲明為全局變量。只能使用函數(shù)中聲明的全局變量。但是,在函數(shù)之前定義的全局變量可以在函數(shù)中使用,而無需聲明。
(3)局部變量是指只能在程序的特定過程或函數(shù)中訪問的變量。局部變量相對于全局變量。在C、C#、ruby等面向?qū)ο笳Z言中,通常只使用局部變量。