欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C語言:變量的作用域和生命周期詳解

 更新時間:2021年08月31日 14:48:38   作者:慕雪華年  
這篇文章主要介紹了C++作用域與生命周期的相關資料,幫助大家更好的理解和學習c++,感興趣的朋友可以了解下,希望能夠給你帶來幫助

1.全局變量和局部變量

定義在代碼塊外部的是全局變量

定義在代碼塊內(nèi)部的是局部變量

什么是代碼塊?

//這是代碼快外部
int main()
{
//這是代碼塊內(nèi)部
}

實際上用int main來演示是不太對的,實際使用的時候我們定義變量是在int main內(nèi)部定義的

下面這個例子更加清晰明了

int main()
{
	int i = 0;//這是代碼塊外部-i全局變量
	for(i=0;i<10;i++)
	{//代碼塊開始
		int j=0;//這是代碼塊內(nèi)部-j局部變量
        for(j=0;j<10;j++)
	}//代碼塊結束
}

需要注意的是:

同一個變量a可以在全局,局部變量中間同時使用,局部變量優(yōu)先

這里是指同時存在,同時使用,但不能同時定義

在局部的代碼塊中重新定義一個全局變量是錯誤的

下面這種形式就是 同時使用一個變量

int main()
{
    int sz = 8;
	int i = 0;
	if(i<sz)
	{
		i=1;
	}
}
  • 在我們定義變量的時候,變量的名字不能相同
  • 同時變量的名字也不應和庫函數(shù)名相同

簡單的說就是變量不要重復,也別和庫函數(shù)沖突

2.變量的作用域

變量的作用域->變量的生效區(qū)域

  • 局部變量只在它自己的代碼塊中生效
  • 全局變量的作用域是整個代碼

注:在VS中全局變量的作用域是整個工程

作用域的規(guī)定了變量生效區(qū)域

如果你在局部變量的代碼塊外部使用這個局部變量

這樣是無效的,無法使用

2-1.聲明外部變量的方法

在vs中全局變量的作用域是整個工程

但是如果源文件不同,我們需要打一串聲明來應用工程文件中另外一個源文件的全局變量

extern int a

以下是聲名變量和定義變量的代碼示例

  extern int a;//聲明全局變量a
  int a; //定義全局變量a
  extern int a =0 ;//定義全局變量a 并給初始值
  int a =0;//定義全局變量a,并給初始值

3.變量的生命周期

生命周期這個概念和作用域十分相似

  • 局部變量的生命周期從進入"{“開始,離開”}"結束
  • 全局變量的生命周期是整個程序(VS項目)

4. 局部變量&自動變量

局部變量又稱自動變量

auto int a = 0;

實際使用的時候我們一般都是省略auto的

總結

本片文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內(nèi)容!

相關文章

  • Dev C++編譯時運行報錯source file not compile問題

    Dev C++編譯時運行報錯source file not compile問題

    這篇文章主要介紹了Dev C++編譯時運行報錯source file not compile問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 淺析char 指針變量char *=p 這個語句的輸出問題

    淺析char 指針變量char *=p 這個語句的輸出問題

    下面小編就為大家?guī)硪黄獪\析char 指針變量char *=p 這個語句的輸出問題。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • 關于函數(shù)調(diào)用方式__stdcall和__cdecl詳解

    關于函數(shù)調(diào)用方式__stdcall和__cdecl詳解

    下面小編就為大家?guī)硪黄P于函數(shù)調(diào)用方式__stdcall和__cdecl詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • C語言深入講解指針與結構體的使用

    C語言深入講解指針與結構體的使用

    指針提供了對地址操作的一種方法,因此,使用指針可使得C語言能夠更高效地實現(xiàn)對計算機底層硬件的操作。另外,通過指針可以更便捷地操作數(shù)組。C數(shù)組允許定義可存儲相同類型數(shù)據(jù)項的變量,結構是C編程中另一種用戶自定義的可用的數(shù)據(jù)類型,它允許您存儲不同類型的數(shù)據(jù)項
    2022-05-05
  • Qt實現(xiàn)導出QTableWidget/QTableView數(shù)據(jù)

    Qt實現(xiàn)導出QTableWidget/QTableView數(shù)據(jù)

    這篇文章主要介紹了在Qt中實現(xiàn)將QTableWidget或者QTableView中的數(shù)據(jù)直接導出的示例代碼,文中的示例代碼講解詳細,感興趣的可以了解一下
    2022-01-01
  • C語言舉例講解轉(zhuǎn)義字符的使用

    C語言舉例講解轉(zhuǎn)義字符的使用

    轉(zhuǎn)義字符是很多程序語言、數(shù)據(jù)格式和通信協(xié)議的形式文法的一部分。對于一個給定的字母表,一個轉(zhuǎn)義字符的目的是開始一個字符序列,使得轉(zhuǎn)義字符開頭的該字符序列具有不同于該字符序列單獨出現(xiàn)(沒有轉(zhuǎn)義字符開頭)時的語義。因此轉(zhuǎn)義字符開頭的字符序列被叫做轉(zhuǎn)義序列
    2022-05-05
  • 利用C語言編寫一個無限循環(huán)語句

    利用C語言編寫一個無限循環(huán)語句

    這篇文章主要介紹了利用C語言編寫一個無限循環(huán)語句問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • cin.get()和cin.getline()之間的區(qū)別

    cin.get()和cin.getline()之間的區(qū)別

    以下是對cin.get()和cin.getline()的區(qū)別進行了詳細的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-09-09
  • 使用root權限運行自己所編譯程序的解決方法

    使用root權限運行自己所編譯程序的解決方法

    本篇文章介紹了,使用root權限運行自己所編譯程序的解決方法。需要的朋友參考下
    2013-05-05
  • Qt中關聯(lián)容器QMap,QMultiMap,QHash,QMultiHash的使用

    Qt中關聯(lián)容器QMap,QMultiMap,QHash,QMultiHash的使用

    本文主要介紹了Qt中關聯(lián)容器QMap,QMultiMap,QHash,QMultiHash的使用,這些關聯(lián)容器在Qt中提供了靈活而強大的數(shù)據(jù)結構選項,根據(jù)具體的需求和使用場景,您可以選擇適合的容器來存儲和管理數(shù)據(jù),感興趣的可以了解一下
    2023-09-09

最新評論