国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【C語言】 Static關(guān)鍵字的用法和詳解(太細了!?。。?/h1>

這篇具有很好參考價值的文章主要介紹了【C語言】 Static關(guān)鍵字的用法和詳解(太細了?。。。OM麑Υ蠹矣兴鶐椭?。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

文章目錄

  • 目錄

    前言

    一、static是什么

    二、static的用法

    1.修飾局部變量

    2.修飾全局變量

    ? ? ? ? ?3.修飾函數(shù)

    總結(jié)


前言

? static在不同的語言中又有不同的使用方法,本文介紹的是static在C語言當中的用法。


一、static是什么

? static在C語言中是關(guān)鍵字,中文直譯過來是“靜態(tài)的”,static關(guān)鍵字在C語言中主要是用來修飾變量和函數(shù)。

二、static的用法

1.修飾局部變量

? ——稱為靜態(tài)局部變量

static修飾局部變量時,會改變局部變量的存儲位置,從而使得局部變量的生命周期變長。

? 我們用一段代碼來進行詳解:

void test()
{
	int x = 0;
	x++;
	printf("%d ", x);
}

int main()
{
	int i = 0;
	while (i < 10)
	{
		test();
		i++;
	}
	return 0;
}

? 這段代碼中每次調(diào)用test()函數(shù)時創(chuàng)建局部變量x賦值為0,每次局部變量x出了test()函數(shù)后都會自行銷毀。

? 所以可以很容易得到輸出結(jié)果為:1 1 1 1 1 1 1 1 1 1


? 接著我們用上static關(guān)鍵字來修飾test()函數(shù)中的局部變量x:

void test()
{
	static int x = 0;
	x++;
	printf("%d ", x);
}

int main()
{
	int i = 0;
	while (i < 10)
	{
		test();
		i++;
	}
	return 0;
}

? 輸出結(jié)果變成了:1 2 3 4 5 6 7 8 9 10

? 原因是static修飾了局部變量x,令局部變量x變成靜態(tài)的,使得每次test()函數(shù)結(jié)束時局部變量x都不銷毀,再次進入test()函數(shù)時則保留原有數(shù)值運行,因此x++數(shù)值越來越大。

其本質(zhì)是:

? 普通的局部變量創(chuàng)建后是放在棧區(qū)中,這種局部變量進入作用域時創(chuàng)建,出了作用域就銷毀;

? 但static修飾后的局部變量則放在靜態(tài)區(qū)中,它改變了局部變量的存儲位置,從而使得變量的生命周期延長,延長至程序結(jié)束才銷毀。

注意:static修飾局部變量只改變生命周期,不改變作用域!


2.修飾全局變量

? ——稱為靜態(tài)全局變量

? static修飾全局變量時,會改變?nèi)肿兞康?strong>鏈接屬性,從而使得全局變量的作用域變小。

? 這段話什么意思呢,先來簡單說說全局變量。

? 全局變量的作用域十分的廣,只要在一個源文件中定義后,這個程序中的所有源文件、對象以及函數(shù)都可以調(diào)用,生命周期更是貫穿整個程序。文件中的全局變量想要被另一個文件使用時就需要進行外部聲明(以下用extern關(guān)鍵字進行聲明)。

? 接著我們用代碼進行解析:

【C語言】 Static關(guān)鍵字的用法和詳解(太細了?。。。? referrerpolicy=

? 全局變量x在自己的文件內(nèi)可以直接使用。

? 但當全局變量在另一個文件內(nèi)未進行外部聲明就想直接用時會出現(xiàn)未定義的錯誤:

【C語言】 Static關(guān)鍵字的用法和詳解(太細了?。。。? referrerpolicy=

【C語言】 Static關(guān)鍵字的用法和詳解(太細了?。。。? referrerpolicy=

? ?此時只要使用extern關(guān)鍵字聲明一下即可:

【C語言】 Static關(guān)鍵字的用法和詳解(太細了?。。。? referrerpolicy=

? ?接著我們進入正題,當我們用static修飾全局變量x后:

?【C語言】 Static關(guān)鍵字的用法和詳解(太細了?。。。? referrerpolicy=

?【C語言】 Static關(guān)鍵字的用法和詳解(太細了!?。。? referrerpolicy=

? 會發(fā)現(xiàn)生成錯誤,無法解析外部符號x,全局變量x不能被test.c文件調(diào)用了。所以我們可以很容易看出static修飾后讓全局變量x的作用域變小了,令全局變量x無法被其他文件調(diào)用。

其本質(zhì)是:

? ??全局變量本身是具有外部鏈接屬性的,在A文件中定義的全局變量,在B文件中可以通過【鏈接】來使用;

? ? 但如果全局變量被static修飾,那這個外部鏈接屬性就會被修改成內(nèi)部鏈接屬性,此時這個全局變量就只能在自己的源文件中使用;

3.修飾函數(shù)

? ——稱為靜態(tài)函數(shù)

? static對函數(shù)的修飾與修飾全局變量十分相似,修飾函數(shù)時會改變函數(shù)的鏈接屬性,從而使得函數(shù)的作用域變小。

? 我們直接上代碼:

【C語言】 Static關(guān)鍵字的用法和詳解(太細了?。。。? referrerpolicy=

【C語言】 Static關(guān)鍵字的用法和詳解(太細了?。。。? referrerpolicy=

? 函數(shù)在另一個文件中使用時同樣需要聲明。

? 但當函數(shù)被static修飾后:

【C語言】 Static關(guān)鍵字的用法和詳解(太細了!!?。? referrerpolicy=【C語言】 Static關(guān)鍵字的用法和詳解(太細了!?。。? referrerpolicy=

? 會發(fā)現(xiàn)Add函數(shù)無法被解析了,static修飾后Add函數(shù)的作用域變小了。

本質(zhì)和全局變量很像:

? 函數(shù)本身也是有外部鏈接屬性的;

??被static修飾后,函數(shù)的外部鏈接屬性修改成內(nèi)部鏈接屬性,使得這個函數(shù)只能在自己的源文件內(nèi)被使用,因此函數(shù)的作用域就變小了。


總結(jié)

? 以上就是要說的內(nèi)容,本文僅僅簡單介紹了static在C語言的使用,static在其他語言中還有更多的使用方法。本文是小編的第一篇知識總結(jié),如有不足的地方歡迎大佬們在評論區(qū)指出。也還望各位覺得有用的話一鍵三連+關(guān)注,謝謝!文章來源地址http://www.zghlxwxcb.cn/news/detail-413181.html

到了這里,關(guān)于【C語言】 Static關(guān)鍵字的用法和詳解(太細了!?。。┑奈恼戮徒榻B完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 詳解const、static關(guān)鍵字

    詳解const、static關(guān)鍵字

    目錄 ? 一、static 二、const 在c語言中: static是用來修飾變量和函數(shù)的 ? ? ? ? 1.修飾局部變量——稱為靜態(tài)局部變量 ? ? ? ? 2.修飾全局變量——稱為靜態(tài)全局變量 ? ? ? ? 3.修飾函數(shù)——稱為靜態(tài)函數(shù) 有關(guān)內(nèi)存相關(guān)知識補充: 程序的所有數(shù)據(jù),也就是所有的

    2024年02月06日
    瀏覽(23)
  • C++—static關(guān)鍵字詳解

    C++的static有兩種用法:面向過程程序設(shè)計中的static和面向?qū)ο蟪绦蛟O(shè)計中的static。前者應(yīng)用于普通變量和函數(shù),不涉及類;后者主要說明static在類中的作用。 靜態(tài)全局變量有以下特點: 1、該變量在全局數(shù)據(jù)區(qū)分配內(nèi)存; 2、未經(jīng)初始化的靜態(tài)全局變量會被程序自動初始化為

    2024年02月15日
    瀏覽(23)
  • 【C】static關(guān)鍵字詳解

    【C】static關(guān)鍵字詳解

    static的漢語意思是靜態(tài)的,在C語言中static可以用來修飾 局部變量、全局變量和函數(shù)。 在這里給大家補充一個知識,我們的數(shù)據(jù)在內(nèi)存中存儲時,大概分為3個區(qū)域。 1. 棧區(qū) :我們創(chuàng)建的局部變量、形參等一般就存放在這個區(qū)域,離開作用域是會自動銷毀,將空間還給

    2024年02月10日
    瀏覽(25)
  • C++面試八股文:static和const的關(guān)鍵字有哪些用法?

    某日二師兄參加XXX科技公司的C++工程師開發(fā)崗位第7面: 面試官:C++中, static 和 const 的有哪些用法? 二師兄: satic 主要用在以下三個方面:1.用在全局作用域,修飾的變量或者函數(shù)為靜態(tài)的,限制在本文件內(nèi)使用。2.方法內(nèi)修飾修飾靜態(tài)局部變量,在第一次訪問

    2024年02月08日
    瀏覽(22)
  • 詳解Java的static關(guān)鍵字

    詳解Java的static關(guān)鍵字

    不依賴于對象實例:靜態(tài)方法不需要依賴于任何對象實例,因為它們與具體的對象實例無關(guān)聯(lián)。這意味著在沒有創(chuàng)建對象實例的情況下,就可以直接通過類名訪問或調(diào)用靜態(tài)方法。 可以訪問靜態(tài)成員:靜態(tài)方法可以訪問類的靜態(tài)成員(靜態(tài)字段和靜態(tài)方法),但不能訪問非靜

    2024年02月05日
    瀏覽(48)
  • [開發(fā)語言][c++]:Static關(guān)鍵字和全局變量

    [開發(fā)語言][c++]:Static關(guān)鍵字和全局變量

    寫在前面: 如果您只是想回顧或了解一下static和全局變量的異同點,那么下面的總結(jié)將滿足您的需求。 如果您是一位初學者或?qū)Χ叩氖褂媚@鈨煽?,建議您讀完該篇文章,相信這一篇將解答完您對于static以及全局變量的所有疑惑。 如有問題或建議歡迎評論 or 私信

    2024年01月20日
    瀏覽(45)
  • 在 C/C++中 static 關(guān)鍵字詳解

    在 C/C++中 static 關(guān)鍵字詳解

    static 是 C/C++中的 之一, 是常見的函數(shù)與變量(C++中還包括類)的修飾符 ,它常被用來控制變量的存儲方式和作用范圍。 在眾多高級語言中都有其作為或函數(shù)出現(xiàn),所以這也是應(yīng)當被程序員熟知其各種含義的一個單詞 我們知道在函數(shù)內(nèi)部定義的變量,當程序執(zhí)

    2024年02月14日
    瀏覽(25)
  • 嵌入式C語言關(guān)鍵字(const、static、volitatile)

    C語言中const修飾通常是用來聲明常量,并聲明常量的值不能修改。當涉及 指針變量 時情況就會變得更加有趣,需要特別注意。因為有兩樣東西都有可能成為常量— 一種是用來限定指向的空間的值不可修改;另一種是限定指針不可修改 。下面是幾個聲明的例子: 總結(jié):cons

    2024年02月06日
    瀏覽(26)
  • 【文末福利】C語言掃盲——關(guān)鍵字static究竟限制了誰?

    【知識科普】C語言的static究竟限制了誰? 這是一個有趣的話題,雖然說教科書給了你一些說法,但你真正能把static說清楚嗎?本文將通過一個案例,給大家做一個深度的拆解分析。 注:在本文的討論中,無明確說明時,指的都是static修飾函數(shù),而非變量。 最近的幾個月一直

    2024年02月14日
    瀏覽(21)
  • C/C++ static關(guān)鍵字詳解(最全解析,static是什么,static如何使用,static的??济嬖囶})

    C/C++ static關(guān)鍵字詳解(最全解析,static是什么,static如何使用,static的??济嬖囶})

    目錄 一、前言 ?二、static是什么? 三、static修飾的對象是什么?? ?四、C 語言中的 static ???static的C用法 ???static的重點概念 ???static修飾局部變量 ???static在修飾局部變量和函數(shù)的作用 ???static修飾全局變量和函數(shù) ??static在修飾全局變量和函數(shù)的作用

    2024年02月05日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包