當(dāng) `static` 關(guān)鍵字用于不同的上下文時(shí),其含義和作用也會(huì)有所不同。下面是更多示例代碼,展示了 `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;}
在這個(gè)示例中,`count` 是一個(gè)靜態(tài)局部變量。它被聲明為 `static`,意味著它在函數(shù)調(diào)用之間保持持久性,并且其初始值只在第一次函數(shù)調(diào)用時(shí)初始化。每次調(diào)用 `increment()` 函數(shù)時(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;}
在這個(gè)示例中,`globalVar` 是一個(gè)靜態(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;}
在這個(gè)示例中,`staticFunction()` 是一個(gè)靜態(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; // 錯(cuò)誤:無法在結(jié)構(gòu)體中使用靜態(tài)成員return 0;}
在這個(gè)示例中,`MyStruct` 結(jié)構(gòu)體中的 `y` 成員被聲明為靜態(tài)。然而,C語(yǔ)言不允許在結(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;}
在這個(gè)示例中,`arr` 是一個(gè)靜態(tài)局部數(shù)組。它被聲明為 `static`,意味著它在函數(shù)調(diào)用之間保持持久性,并且其初始值只在第一次函數(shù)調(diào)用時(shí)初始化。每次調(diào)用 `printArray()` 函數(shù)時(shí),都會(huì)打印相同的數(shù)組內(nèi)容。
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7632瀏覽量
141639 -
static
+關(guān)注
關(guān)注
0文章
34瀏覽量
10711
發(fā)布評(píng)論請(qǐng)先 登錄
Windows環(huán)境下32位匯編語(yǔ)言中文資料
深入理解C語(yǔ)言:C語(yǔ)言循環(huán)控制

static在單片機(jī)中的妙用
技術(shù)干貨驛站 ▏深入理解C語(yǔ)言:嵌套循環(huán)與循環(huán)控制的底層原理

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

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

C語(yǔ)言中申請(qǐng)的堆內(nèi)存能不能自動(dòng)釋放
C語(yǔ)言中的頭文件能不能重復(fù)包含
技術(shù)干貨驛站 ▏深入理解C語(yǔ)言:掌握C語(yǔ)言條件判斷,從if到switch的應(yīng)用

C語(yǔ)言中的socket編程基礎(chǔ)
c語(yǔ)言中從左到右結(jié)合怎么看
技術(shù)干貨驛站 ▏深入理解C語(yǔ)言:基本數(shù)據(jù)類型和變量

評(píng)論