c++ static關鍵字的作用


1、被申明的函數或值無法被其他源文件使用

2.static的第二個作用是保持變量內容的持久。(static變量中的記憶功能和全局生存期)

存儲在靜態數據區的變量會在程序剛開始運行時就完成初始化,也是唯一的一次初始化。共有兩種變量存儲在靜態存儲區:全局變量和static變量,只不過和全局變量比起來,static可以控制變量的可見范圍,說到底static還是用來隱藏的。雖然這種用法不常見

PS:如果作為static局部變量在函數內定義,它的生存期為整個源程序,但是其作用域仍與自動變量相同,只能在定義該變量的函數內使用該變量。退出該函數后, 盡管該變量還繼續存在,但不能使用它。

#include <stdio.h>
 
int fun(){
    static int count = 10; //在第一次進入這個函數的時候,變量a被初始化為10!並接着自減1,以后每次進入該函數,a
    return count--; //就不會被再次初始化了,僅進行自減1的操作;在static發明前,要達到同樣的功能,則只能使用全局變量:    
 
}
 
int count = 1;
 
int main(void)
{
     printf("global\t\tlocal static\n");
     for(; count <= 10; ++count)
               printf("%d\t\t%d\n", count, fun());//局部變量statuc申明的變量和全局的不是同一個變量
     return 0;
}

3.static的第三個作用是默認初始化為0(static變量)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM