0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【筆記】static 在C語言中的用法

撞上電子 ? 2023-06-12 10:03 ? 次閱讀

當(dāng) `static` 關(guān)鍵字用于不同的上下文時,其含義和作用也會有所不同。下面是更多示例代碼,展示了 `static` 在不同用法下的具體效果:

示例1:靜態(tài)局部變量

#include void increment() {static int count = 0;count++;printf("Count: %d\n", count);}int main() {increment(); // 輸出:Count: 1increment(); // 輸出:Count: 2increment(); // 輸出:Count: 3return 0;}

在這個示例中,`count` 是一個靜態(tài)局部變量。它被聲明為 `static`,意味著它在函數(shù)調(diào)用之間保持持久性,并且其初始值只在第一次函數(shù)調(diào)用時初始化。每次調(diào)用 `increment()` 函數(shù)時,`count` 的值遞增并打印。

示例2:靜態(tài)全局變量

#include static int globalVar = 10;void function() {printf("Global variable: %d\n", globalVar);}int main() {function(); // 輸出:Global variable: 10return 0;}

在這個示例中,`globalVar` 是一個靜態(tài)全局變量。它被聲明為 `static`,意味著它的作用域僅限于當(dāng)前文件,并且無法被其他文件訪問。在 `function()` 函數(shù)中,可以直接訪問和使用靜態(tài)全局變量。

示例3:靜態(tài)函數(shù)

#include static void staticFunction() {printf("Static function\n");}int main() {staticFunction(); // 輸出:Static functionreturn 0;}

在這個示例中,`staticFunction()` 是一個靜態(tài)函數(shù)。它被聲明為 `static`,意味著它的作用域僅限于當(dāng)前文件,無法被其他文件調(diào)用。


示例4:靜態(tài)結(jié)構(gòu)體成員

#include struct MyStruct {int x;static int y;};int main() {struct MyStruct obj;obj.x = 5;obj.y = 10; // 錯誤:無法在結(jié)構(gòu)體中使用靜態(tài)成員return 0;}

在這個示例中,`MyStruct` 結(jié)構(gòu)體中的 `y` 成員被聲明為靜態(tài)。然而,C語言不允許在結(jié)構(gòu)體中使用靜態(tài)成員。

示例5:靜態(tài)局部數(shù)組

#include void printArray() {static int arr[] = {1, 2, 3, 4, 5};int size = sizeof(arr) / sizeof(arr[0]);for (int i = 0; i < size; i++) {printf("%d ", arr[i]);}printf("\n");}int main() {printArray(); // 輸出:1 2 3 4 5printArray();// 輸出:1 2 3 4 5return 0;}

在這個示例中,`arr` 是一個靜態(tài)局部數(shù)組。它被聲明為 `static`,意味著它在函數(shù)調(diào)用之間保持持久性,并且其初始值只在第一次函數(shù)調(diào)用時初始化。每次調(diào)用 `printArray()` 函數(shù)時,都會打印相同的數(shù)組內(nèi)容。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7630

    瀏覽量

    140794
  • static
    +關(guān)注

    關(guān)注

    0

    文章

    34

    瀏覽量

    10649
收藏 0人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    深入理解C語言C語言循環(huán)控制

    C語言編程中,循環(huán)結(jié)構(gòu)是至關(guān)重要的,它可以讓程序重復(fù)執(zhí)行特定的代碼塊,從而提高編程效率。然而,為了避免程序進(jìn)入無限循環(huán),C語言提供了多種循
    的頭像 發(fā)表于 04-29 18:49 ?975次閱讀
    深入理解<b class='flag-5'>C</b><b class='flag-5'>語言</b>:<b class='flag-5'>C</b><b class='flag-5'>語言</b>循環(huán)控制

    static單片機(jī)中的妙用

    不要從字面意思誤以為關(guān)鍵字 static 很安靜,其實(shí)它一點(diǎn)都不安靜。這個關(guān)鍵字 C 語言里主要有兩個作用,下面我們就來介紹一下 C
    發(fā)表于 04-02 13:50 ?1次下載

    51單片機(jī)C語言學(xué)習(xí)筆記

    c51語言快速入門
    發(fā)表于 03-24 14:04 ?3次下載

    技術(shù)干貨驛站 ▏深入理解C語言:嵌套循環(huán)與循環(huán)控制的底層原理

    多重循環(huán),還是控制循環(huán)的執(zhí)行流程,掌握這些知識都將為你的編程之路打下堅實(shí)的基礎(chǔ)。嵌套循環(huán)C語言中,循環(huán)語句可以嵌套使用,即在一個循環(huán)中再使用另一個循環(huán)。這種嵌套結(jié)
    的頭像 發(fā)表于 02-21 18:26 ?579次閱讀
    技術(shù)干貨驛站  ▏深入理解<b class='flag-5'>C</b><b class='flag-5'>語言</b>:嵌套循環(huán)與循環(huán)控制的底層原理

    EE-62:C語言中訪問短字內(nèi)存

    電子發(fā)燒友網(wǎng)站提供《EE-62:C語言中訪問短字內(nèi)存.pdf》資料免費(fèi)下載
    發(fā)表于 01-07 14:02 ?0次下載
    EE-62:<b class='flag-5'>在</b><b class='flag-5'>C</b><b class='flag-5'>語言中</b>訪問短字內(nèi)存

    EE-128:C語言中的DSP:從C調(diào)用匯編類成員函數(shù)

    電子發(fā)燒友網(wǎng)站提供《EE-128:C語言中的DSP:從C調(diào)用匯編類成員函數(shù).pdf》資料免費(fèi)下載
    發(fā)表于 01-07 13:48 ?0次下載
    EE-128:<b class='flag-5'>C</b><b class='flag-5'>語言中</b>的DSP:從<b class='flag-5'>C</b>調(diào)用匯編類成員函數(shù)

    深入理解C語言:循環(huán)語句的應(yīng)用與優(yōu)化技巧

    程序設(shè)計中,我們常常需要重復(fù)執(zhí)行某一段代碼。為了提高效率和簡化代碼,循環(huán)語句應(yīng)運(yùn)而生。C語言作為一門經(jīng)典的編程語言,提供了多種循環(huán)控制結(jié)構(gòu),幫助程序員高效地實(shí)現(xiàn)重復(fù)操作。掌握循環(huán)語句
    的頭像 發(fā)表于 12-07 01:11 ?562次閱讀
    深入理解<b class='flag-5'>C</b><b class='flag-5'>語言</b>:循環(huán)語句的應(yīng)用與優(yōu)化技巧

    C語言中申請的堆內(nèi)存能不能自動釋放

    C語言中申請的堆內(nèi)存能不能自動釋放?每次都要手動 free 太麻煩,也容易忘記。 學(xué)過 C++ 的同學(xué),應(yīng)該首先能想到智能指針。 但是這是C語言
    的頭像 發(fā)表于 11-27 09:33 ?489次閱讀

    C語言中的頭文件能不能重復(fù)包含

    C語言中的頭文件能不能重復(fù)包含? 比如代碼寫成這樣,stdio.h 連續(xù)包含了兩次。 #include #include int main(){ printf("helloworld
    的頭像 發(fā)表于 11-26 17:19 ?541次閱讀

    技術(shù)干貨驛站 ▏深入理解C語言:掌握C語言條件判斷,從if到switch的應(yīng)用

    在編程中,條件判斷語句是控制程序流程的核心元素之一。它們使得程序能夠根據(jù)不同的輸入和狀態(tài),做出相應(yīng)的決策。特別是C語言中,條件判斷語句的使用極為廣泛,涵蓋了從簡單的if語句到更復(fù)雜的switch
    的頭像 發(fā)表于 11-09 01:10 ?820次閱讀
    技術(shù)干貨驛站 ▏深入理解<b class='flag-5'>C</b><b class='flag-5'>語言</b>:掌握<b class='flag-5'>C</b><b class='flag-5'>語言</b>條件判斷,從if到switch的應(yīng)用

    C語言指針學(xué)習(xí)筆記

    本文從底層內(nèi)存分析,徹底讓讀者明白C語言指針的本質(zhì)。
    的頭像 發(fā)表于 11-05 17:40 ?597次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>指針學(xué)習(xí)<b class='flag-5'>筆記</b>

    C語言中的socket編程基礎(chǔ)

    Socket編程簡介 Socket是一種通信機(jī)制,允許程序之間進(jìn)行通信。C語言中,socket編程是網(wǎng)絡(luò)編程的基礎(chǔ)。通過使用socket,程序可以發(fā)送和接收數(shù)據(jù),實(shí)現(xiàn)不同計算機(jī)之間的通信
    的頭像 發(fā)表于 11-01 16:51 ?1119次閱讀

    C語言中最常見的宏定義寫法

    如果讓你用C語言寫個宏定義,我相信大部分同學(xué)順手就能寫出define。
    的頭像 發(fā)表于 10-28 11:12 ?788次閱讀

    c語言中從左到右結(jié)合怎么看

    C語言中,操作符的結(jié)合性(Associativity)是指當(dāng)操作符表達(dá)式中連續(xù)出現(xiàn)時,它們?nèi)绾闻c操作數(shù)結(jié)合的順序。對于大多數(shù)二元操作符(即需要兩個操作數(shù)的操作符),
    的頭像 發(fā)表于 08-20 11:42 ?1558次閱讀

    技術(shù)干貨驛站 ▏深入理解C語言:基本數(shù)據(jù)類型和變量

    C語言中,數(shù)據(jù)類型和變量是編程的基礎(chǔ),也是理解更復(fù)雜概念的關(guān)鍵。數(shù)據(jù)類型決定了變量的內(nèi)存分配、存儲范圍和操作方式,而變量則是存儲數(shù)據(jù)的容器。本篇文章將從基本數(shù)據(jù)類型和變量兩個方面,帶你深入了解
    的頭像 發(fā)表于 07-26 17:53 ?2666次閱讀
    技術(shù)干貨驛站 ▏深入理解<b class='flag-5'>C</b><b class='flag-5'>語言</b>:基本數(shù)據(jù)類型和變量

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品