C語言基礎全局變量與局部變量教程詳解

一:局部變量與全局變量

1.1:局部變量

局部變量:在函數內部定義的變量 ,auto可加可不加
作用域:從定義到本函數結束
生命周期:從定義到該函數結束

1.2:全局變量

全局變量:在函數外部定義的變量、所以存在數據區
作用域:項目中所有文件 。

註意:在其他文件中使用需要聲明,且不可重名extern int a,extern是關鍵字,專用來聲明外部符號。

生命周期:程序開始創建到程序結束銷毀。

1.3:代碼解釋

在這裡插入圖片描述

註:當局部變量與全局變量同名時,局部變量優先使用。

1.4:const修飾的變量的修改

全局變量
直接修改 失敗
間接修改 失敗 原因放在常量區,受到保護。
局部變量
直接修改 失敗
間接修改 成功 原因放在棧上 局部變量存在棧區。
詳情見我的C語言指針基礎篇

二:靜態局部變量與靜態全局變量

2.1:static關鍵字

static :
修飾局部變量:其實是改變瞭局部變量的存儲類型,(從棧區到靜態區)。從而使得靜態的局部變量除出瞭作用域也不會銷毀。對於局部變量 其實有一個“保值”的作用。
修飾全局變量:一個全局變量在整個工程的其他文件內部都可以使用,是因為全局變量有外部鏈接屬性,當static修飾時,外部鏈接屬性就變成瞭內部鏈接屬性,使這個全局變量隻能在自己的源文件內部使用,其他文件不可使用。

2.2:靜態局部變量

靜態局部變量:在函數內部定義的變量,使用static修飾,保存一個值在靜態區(保值)。
作用域:當前函數中。
生命周期:程序開始創建到程序結束銷毀

靜態局部變量隻會初始化一次 可以多次賦值
在數據區進行存儲(靜態區)

2.3:靜態全局變量

靜態全局變量:在函數外部定義的變量,使用static修飾,可以在本文件中使用,不可再同一項目的其它文件中使用。
作用域:當前文件中。
生命周期:程序開始創建到程序結束銷毀。

註:全局變量、靜態局部變量、靜態全局變量如果未初始化系統會默認初始化值為0。但是局部變量需要初始化。

2.4:匯總

在這裡插入圖片描述

三:全局函數與靜態函數

3.1:全局函數

全局函數:沒有任何修飾的函數。
作用域:項目中所有文件(其他文件使用時也需要聲明)。
生命周期:程序開始創建到程序結束銷毀。

3.2:靜態函數

靜態函數:使用static修飾的函數。
作用域:當前文件中。
生命周期:程序開始創建到程序結束。
註:靜態函數可以和全局函數重名 ,也服從就近原則。

3.3:匯總表

在這裡插入圖片描述

以上就是C語言基礎全局變量與局部變量教程詳解的詳細內容,更多關於C語言基礎全局與局部變量的資料請關註WalkonNet其它相關文章!

推薦閱讀: