static關鍵字的作用是什麼?

2022-08-02 20:36:15 字數 1275 閱讀 1908

static的作用:常用來修飾變數。

全域性變數被static修飾後,就稱之為靜態全域性變數;區域性變數被static修飾後,就稱之為靜態區域性變數。統稱為靜態變數。

如果需要進一步解釋下面的現象,可以了解ios的記憶體管理方面的知識,比如區域性變數是放置在棧區,而全域性變數和靜態變數是放置在靜態區的。

一、static修飾區域性變數

- (void

)test

將上述方法在呼叫三次的列印結果是:

i = 1, m = 1

normal = 0x8e73d21, static = 0x928b78a89

i = 1, m = 2

normal = 0x8e73b09, static = 0x928b78a89

i = 1, m = 3

normal = 0x8e73c18, static = 0x928b78a89

總結:當static關鍵字修飾區域性變數時,只會對該變數初始化一次。

當static關鍵字修飾區域性變數時,該變數在程式中只有乙份記憶體。

當static關鍵字修飾區域性變數時,該變數的作用域不會改變。

當static關鍵字修飾區域性變數時,該變數的生命週期被延長,直到程式結束才銷毀。

二、static修飾全域性變數

#import

"classa.h"//

宣告乙個全域性變數

nsinteger num;

@implementation

classa

@end

在工程classa.m檔案中證明乙個全域性變數,如果同時在其他.m檔案中也宣告乙個全域性變數nsiteger num,編譯的時候就會報錯。

在其他檔案中如果想訪問全域性變數num,可以import "classa.h"然後就能訪問,或者不import,使用extern 關鍵字也能獲得全域性變數,比如:

- (void

)viewdidload

如果不想被整個工程檔案所訪問到,但是能在所宣告的檔案中自由訪問,就需要使用static關鍵字來宣告,如下:

#import

"classa.h"//

宣告乙個靜態檔案的全域性變數

static

nsinteger num;

@implementation

classa

@end

總結:當用static關鍵字修飾全域性變數時,該變數的作用域僅限於當前檔案,工程中的其他檔案不可以訪問到該全域性變數。

關鍵字 static 的作用是什麼?

關鍵字 static 的作用是什麼?1 在函式體,乙個被宣告為靜態的變數在這一函式被呼叫過程中維持其值不變。2 在模組內 但在函式體外 乙個被宣告為靜態的變數可以被模組內所用函式訪問,但不能被模組外其它函式訪問。它是乙個本地的全域性變數。3 在模組內,乙個被宣告為靜態的函式只可被這一模組內的其它函式...

關鍵字static的作用是什麼

對於這個static的作用,文字表述有三項 1 在函式體,乙個被宣告為靜態的變數在這一函式被呼叫過程中維持其值不變。2 在模組內 但在函式體外 乙個被宣告為靜態的變數可以被模組內所用函式訪問,但不能被模組外其它函式訪問。它是乙個本地的全域性變數。3 在模組內,乙個被宣告為靜態的函式只可被這一模組內的...

Static關鍵字的作用是什麼?

1 c語言中的作用 1 隱藏 乙個被宣告為靜態的變數和函式可以被檔案內所有函式訪問,但不能被檔案外其他函式訪問,即使該變數作了extern宣告 2 static區域性變數只初始化一次,在重複呼叫函式數,使用的是static區域性變數下一次結果的值 也就是static所在語句只執行一次,之後遇到這條語...