static的作用:常用來修飾變數。
全域性變數被static修飾後,就稱之為靜態全域性變數;區域性變數被static修飾後,就稱之為靜態區域性變數。統稱為靜態變數。
如果需要進一步解釋下面的現象,可以了解ios的記憶體管理方面的知識,比如區域性變數是放置在棧區,而全域性變數和靜態變數是放置在靜態區的。
一、static修飾區域性變數
- (void)test
將上述方法在呼叫三次的列印結果是:
i = 1, m = 1normal = 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所在語句只執行一次,之後遇到這條語...