您好,登錄后才能下訂單哦!
小編給大家分享一下C語言中全局變量與局部變量的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
局部變量:在函數內部定義的變量 ,auto可加可不加
作用域:從定義到本函數結束
生命周期:從定義到該函數結束
全局變量:在函數外部定義的變量、所以存在數據區
作用域:項目中所有文件 。
注意:在其他文件中使用需要聲明,且不可重名extern int a,extern是關鍵字,專用來聲明外部符號。
生命周期:程序開始創建到程序結束銷毀。
注:當局部變量與全局變量同名時,局部變量優先使用。
全局變量
直接修改 失敗
間接修改 失敗 原因放在常量區,受到保護。
局部變量
直接修改 失敗
間接修改 成功 原因放在棧上 局部變量存在棧區。
詳情見我的C語言指針基礎篇
static :
修飾局部變量:其實是改變了局部變量的存儲類型,(從棧區到靜態區)。從而使得靜態的局部變量除出了作用域也不會銷毀。對于局部變量 其實有一個“保值”的作用。
修飾全局變量:一個全局變量在整個工程的其他文件內部都可以使用,是因為全局變量有外部鏈接屬性,當static修飾時,外部鏈接屬性就變成了內部鏈接屬性,使這個全局變量只能在自己的源文件內部使用,其他文件不可使用。
靜態局部變量:在函數內部定義的變量,使用static修飾,保存一個值在靜態區(保值)。
作用域:當前函數中。
生命周期:程序開始創建到程序結束銷毀
靜態局部變量只會初始化一次 可以多次賦值
在數據區進行存儲(靜態區)
靜態全局變量:在函數外部定義的變量,使用static修飾,可以在本文件中使用,不可再同一項目的其它文件中使用。
作用域:當前文件中。
生命周期:程序開始創建到程序結束銷毀。
注:全局變量、靜態局部變量、靜態全局變量如果未初始化系統會默認初始化值為0。但是局部變量需要初始化。
全局函數:沒有任何修飾的函數。
作用域:項目中所有文件(其他文件使用時也需要聲明)。
生命周期:程序開始創建到程序結束銷毀。
靜態函數:使用static修飾的函數。
作用域:當前文件中。
生命周期:程序開始創建到程序結束。
注:靜態函數可以和全局函數重名 ,也服從就近原則。
以上是“C語言中全局變量與局部變量的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。