C語言基礎(chǔ)全局變量與局部變量教程詳解
一:局部變量與全局變量
1.1:局部變量
局部變量:在函數(shù)內(nèi)部定義的變量 ,auto可加可不加
作用域:從定義到本函數(shù)結(jié)束
生命周期:從定義到該函數(shù)結(jié)束
1.2:全局變量
全局變量:在函數(shù)外部定義的變量、所以存在數(shù)據(jù)區(qū)
作用域:項目中所有文件 。
注意:在其他文件中使用需要聲明,且不可重名extern int a,extern是關(guān)鍵字,專用來聲明外部符號。
生命周期:程序開始創(chuàng)建到程序結(jié)束銷毀。
1.3:代碼解釋
注:當局部變量與全局變量同名時,局部變量優(yōu)先使用。
1.4:const修飾的變量的修改
全局變量
直接修改 失敗
間接修改 失敗 原因放在常量區(qū),受到保護。
局部變量
直接修改 失敗
間接修改 成功 原因放在棧上 局部變量存在棧區(qū)。
詳情見我的C語言指針基礎(chǔ)篇
二:靜態(tài)局部變量與靜態(tài)全局變量
2.1:static關(guān)鍵字
static :
修飾局部變量:其實是改變了局部變量的存儲類型,(從棧區(qū)到靜態(tài)區(qū))。從而使得靜態(tài)的局部變量除出了作用域也不會銷毀。對于局部變量 其實有一個“保值”的作用。
修飾全局變量:一個全局變量在整個工程的其他文件內(nèi)部都可以使用,是因為全局變量有外部鏈接屬性,當static修飾時,外部鏈接屬性就變成了內(nèi)部鏈接屬性,使這個全局變量只能在自己的源文件內(nèi)部使用,其他文件不可使用。
2.2:靜態(tài)局部變量
靜態(tài)局部變量:在函數(shù)內(nèi)部定義的變量,使用static修飾,保存一個值在靜態(tài)區(qū)(保值)。
作用域:當前函數(shù)中。
生命周期:程序開始創(chuàng)建到程序結(jié)束銷毀
靜態(tài)局部變量只會初始化一次 可以多次賦值
在數(shù)據(jù)區(qū)進行存儲(靜態(tài)區(qū))
2.3:靜態(tài)全局變量
靜態(tài)全局變量:在函數(shù)外部定義的變量,使用static修飾,可以在本文件中使用,不可再同一項目的其它文件中使用。
作用域:當前文件中。
生命周期:程序開始創(chuàng)建到程序結(jié)束銷毀。
注:全局變量、靜態(tài)局部變量、靜態(tài)全局變量如果未初始化系統(tǒng)會默認初始化值為0。但是局部變量需要初始化。
2.4:匯總
三:全局函數(shù)與靜態(tài)函數(shù)
3.1:全局函數(shù)
全局函數(shù):沒有任何修飾的函數(shù)。
作用域:項目中所有文件(其他文件使用時也需要聲明)。
生命周期:程序開始創(chuàng)建到程序結(jié)束銷毀。
3.2:靜態(tài)函數(shù)
靜態(tài)函數(shù):使用static修飾的函數(shù)。
作用域:當前文件中。
生命周期:程序開始創(chuàng)建到程序結(jié)束。
注:靜態(tài)函數(shù)可以和全局函數(shù)重名 ,也服從就近原則。
3.3:匯總表
以上就是C語言基礎(chǔ)全局變量與局部變量教程詳解的詳細內(nèi)容,更多關(guān)于C語言基礎(chǔ)全局與局部變量的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
解析C++浮點數(shù)無效值的定義與無效值判定的小結(jié)
本篇文章是對C++中浮點數(shù)無效值的定義與無效值的判定進行了詳細的分析介紹,需要的朋友參考下2013-05-05C++使用new和delete進行動態(tài)內(nèi)存分配與數(shù)組封裝
這篇文章主要介紹了C++使用new和delete進行動態(tài)內(nèi)存分配與數(shù)組封裝,運行期間才能確定所需內(nèi)存大小,此時應該使用new申請內(nèi)存,下面我們就進入文章學習具體的操作方法,需要的小伙伴可以參考一下2022-03-03C++對象內(nèi)存分布詳解(包括字節(jié)對齊和虛函數(shù)表)
下面小編就為大家?guī)硪黄狢++對象內(nèi)存分布詳解(包括字節(jié)對齊和虛函數(shù)表)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-12-12詳解如何將Spire.PDF for C++集成到C++程序中
Spire.PDF for C++ 是一個專業(yè)的 PDF 庫,供開發(fā)人員在任何類型的 C++ 應用程序中閱讀、創(chuàng)建、編輯和轉(zhuǎn)換 PDF 文檔,本文主要介紹了兩種不同的方式將 Spire.PDF for C++ 集成到您的 C++ 應用程序中,希望對大家有所幫助2023-11-11