從作用域看:
全局變量具有全局作用域。全局變量只需在一個源文件中定義,就可以作用於所有的源文件。當然,其他不包含全局變量定義的源文件需要用extern 關鍵字再次聲明這個全局變量。
局部變量也只有局部作用域,它是自動對象(auto),它在程序運行期間不是一直存在,而是只在函數執行期間存在,函數的一次調用執行結束后,變量被撤銷,其所占用的內存也被收回。
從分配內存空間看:
全局變量,靜態局部變量,靜態全局變量都在靜態存儲區分配空間,而局部變量在棧里分配空間
全局變量和局部變量的區別是作用域不同,全局變量從定義位置開始到程序結束,而局部變量只限定義的函數內可使用,全局變量在數據段,而局部變量在棧,局部 變量在函數結束時內存空間就被系統收回,所以要返回的數組或字符串不要用局部變量定義
全局都放在靜態存儲區,局部一般臨時分配在棧里,生命周期到,自動釋放內存!
作者:nickYao
鏈接:https://www.jianshu.com/p/495c2da7e037
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。