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