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

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

這篇具有很好參考價(jià)值的文章主要介紹了【C】static關(guān)鍵字詳解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

概述

static的漢語(yǔ)意思是靜態(tài)的,在C語(yǔ)言中static關(guān)鍵字可以用來(lái)修飾局部變量、全局變量和函數(shù)。
在這里給大家補(bǔ)充一個(gè)知識(shí),我們的數(shù)據(jù)在內(nèi)存中存儲(chǔ)時(shí),大概分為3個(gè)區(qū)域。
1.棧區(qū):我們創(chuàng)建的局部變量、形參等一般就存放在這個(gè)區(qū)域,離開(kāi)作用域是會(huì)自動(dòng)銷毀,將空間還給操作系統(tǒng)。
2.堆區(qū):堆區(qū)存儲(chǔ)的數(shù)據(jù)一般是由我們程序員自己來(lái)開(kāi)辟的,比如使用malloc、realloc等來(lái)動(dòng)態(tài)開(kāi)辟,這個(gè)區(qū)域的空間需要我們程序員自己釋放,否則就會(huì)造成內(nèi)存泄漏。
3.靜態(tài)區(qū):這里一般存儲(chǔ)的是全局變量和靜態(tài)變量,他是有操作系統(tǒng)創(chuàng)建的,工程結(jié)束后由操作系統(tǒng)回收。

static修飾局部變量

在講這個(gè)之前我們先來(lái)比較兩段代碼:

#include<stdio.h>
void test()
{
	int i = 0;
	i++;
	printf("%d ", i);
}
int main()
{
	int i = 0;
	for (i = 0; i < 5; i++)
	{
		test();
	}
	return 0;
}

運(yùn)行結(jié)果為:
【C】static關(guān)鍵字詳解

再來(lái)看下面這段代碼:

#include<stdio.h>
void test()
{
	static int i = 0;
	i++;
	printf("%d ", i);
}
int main()
{
	int i = 0;
	for (i = 0; i < 5; i++)
	{
		test();
	}
	return 0;
}

運(yùn)行結(jié)果為:
【C】static關(guān)鍵字詳解
我們可以看到,這兩段代碼一個(gè)test函數(shù)中的i用了static關(guān)鍵字修飾,一個(gè)沒(méi)有,造成運(yùn)行結(jié)果有這么大的差異,這是為什么呢?
其實(shí)道理很簡(jiǎn)單,static來(lái)修飾局部變量,該變量就變成了靜態(tài)變量,那么它就從原本的棧區(qū)改變到了靜態(tài)區(qū),它不會(huì)隨著函數(shù)的結(jié)束而被銷毀,因此我們就看到了下面的這個(gè)結(jié)果,我們?cè)谶@里可以理解為static修飾局部變量延長(zhǎng)了局部變量的生命周期。
在這里需要注意的是,static修飾的局部變量,在編譯時(shí)已經(jīng)創(chuàng)建了,并不是程序走到這個(gè)位置才創(chuàng)建的。

static修飾全局變量

全局變量具有外部鏈接屬性,就是我們?cè)谝粋€(gè)工程中可以有多個(gè).c文件,在別的文件中定義的全局變量是可以在我們本文件中使用的,我們?cè)谑褂玫臅r(shí)候只需要用exturn聲明一下就可以使用。如:
【C】static關(guān)鍵字詳解
我們是可以使用另一個(gè).c文件中的全局變量的,但是如果static修飾了這個(gè)全局變量,就使它的外部鏈接屬性變成了內(nèi)部鏈接屬性,這時(shí)我們只能在定義那個(gè)全局變量的文件中使用,在別的文件中就不能使用。

static修飾函數(shù)

static修飾函數(shù)和修飾全局變量非常相似,C語(yǔ)言中函數(shù)也是具有外部鏈接屬性的,用static修飾后,也是使它的外部鏈接屬性變成了內(nèi)部鏈接屬性,這是也只能在定義這個(gè)函數(shù)的.c文件中使用,在別的文件中無(wú)法使用。

今天的分享就到這里了,感謝大家的關(guān)注和支持!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-499379.html

到了這里,關(guān)于【C】static關(guān)鍵字詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • C語(yǔ)言之static關(guān)鍵字詳解

    C語(yǔ)言之static關(guān)鍵字詳解

    ?前言: 一、幾個(gè)概念 1.變量 2.局部變量和全局變量 3.變量的作用域 4.變量的生命周期 二、static的作用 三、static修飾局部變量 四、static修飾全局變量 ?五、static修飾函數(shù) ?寫(xiě)在最后: ? ? ? ? ? ?static,英文意思靜態(tài)的,作為C語(yǔ)言常用中一

    2024年02月03日
    瀏覽(26)
  • 在 C/C++中 static 關(guān)鍵字詳解

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

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

    2024年02月14日
    瀏覽(25)
  • 【C語(yǔ)言】靜態(tài)關(guān)鍵字static的用法(詳解)

    【C語(yǔ)言】靜態(tài)關(guān)鍵字static的用法(詳解)

    ???個(gè)人主頁(yè):庫(kù)庫(kù)的里昂 ???CSDN新晉作者 ???歡迎 ??點(diǎn)贊?評(píng)論?收藏 ??收錄專欄:C語(yǔ)言初階 ??其他專欄:代碼小游戲 ???希望作者的文章能對(duì)你有所幫助,有不足的地方請(qǐng)?jiān)谠u(píng)論區(qū)留言指正,大家一起學(xué)習(xí)交流!?? 【前言】 不同于其他,他們都有多種用

    2024年02月14日
    瀏覽(29)
  • 【C語(yǔ)言】 Static關(guān)鍵字的用法和詳解(太細(xì)了?。。。? decoding=
  • C/C++ static關(guān)鍵字詳解(最全解析,static是什么,static如何使用,static的??济嬖囶})

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

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

    2024年02月05日
    瀏覽(20)
  • static關(guān)鍵字和final關(guān)鍵字

    在java的中,static和final是兩個(gè)必須掌握的。static和final用法多樣,且在一定環(huán)境下使用,可以提高程序的運(yùn)行性能,優(yōu)化程序的結(jié)構(gòu)。下面將依次介紹static和final。注意,某些場(chǎng)景下,staic和final可以聯(lián)合使用

    2024年02月09日
    瀏覽(98)
  • static關(guān)鍵字

    static關(guān)鍵字

    作者簡(jiǎn)介: zoro-1,目前大一,正在學(xué)習(xí)Java,數(shù)據(jù)結(jié)構(gòu)等 作者主頁(yè): zoro-1的主頁(yè) 歡迎大家點(diǎn)贊 ?? 收藏 ? 加關(guān)注哦!???? 在Java中,被static修飾的成員,稱之為靜態(tài)成員,也可以稱為類成員,其不屬于某個(gè)具體的對(duì) 象,是所有對(duì)象所共享的。 不屬于某個(gè)具體的對(duì)象,是類

    2024年02月14日
    瀏覽(21)
  • C# -- static 關(guān)鍵字

    C# -- static 關(guān)鍵字

    一、static static ,用于修飾類,字段,屬性,方法,構(gòu)造方法等。被 static 修飾的類稱之為“靜態(tài)類”; 被 static 修飾的成員稱之為“靜態(tài)成員”,被修飾過(guò)的成員分別稱為:靜態(tài)字段,靜態(tài)屬性,靜態(tài)方法,靜態(tài)構(gòu)造方法。 二、靜態(tài)字段 1.概念 被 static

    2023年04月19日
    瀏覽(17)
  • 【java】static關(guān)鍵字

    【java】static關(guān)鍵字

    類與對(duì)象的關(guān)系 類是構(gòu)建對(duì)象的模板,一個(gè)類可以構(gòu)建多個(gè)對(duì)象。 類在 方法區(qū) 當(dāng)中,對(duì)象在 堆 中。 static修飾的變量是 獨(dú)屬于類 的變量,沒(méi)有給對(duì)象。 運(yùn)行結(jié)果 ?static修飾的變量究竟儲(chǔ)存在什么地方 在 方法區(qū) 當(dāng)中有 靜態(tài)常量池 ,static修飾的變量被放在靜態(tài)常量池中,

    2024年04月15日
    瀏覽(31)
  • Java static 關(guān)鍵字

    Java 中的 static 是一個(gè)非常重要的概念,它可以用來(lái)修飾變量、方法和代碼塊。 static 用于修飾類的成員,包括變量、方法和代碼塊。使用 static 修飾的成員被稱為靜態(tài)成員,它們屬于類而不是對(duì)象,可以被類的所有實(shí)例共享。 1. 靜態(tài)變量 使用 static

    2024年02月11日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包