<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 【我解C語言面試題系列】001 static有什么用途? 【題目】static有什么用途? 在網上流傳很廣的一個答案是: 1、限制變量的作用域 2、設置變量的存儲域 ?? 我覺得這樣答題是不妥當的,有點文不對題的感覺。 下面是我給出的答案: static類型聲明符在C語言里面主要有三個用途: 1、聲明靜態局部變量。 2、聲明靜態外部全局變量。 3、聲明靜態外部函數。 下面是我整理的有關上面三個用法的解釋說明。另外網友xiaocai0001的《static用法小結》一文有更詳細的解釋,請參考。 [http://blog.csdn.net/xiaocai0001/archive/2006/04/14/662921.aspx](http://blog.csdn.net/xiaocai0001/archive/2006/04/14/662921.aspx) **靜態局部變量**(與auto對比) **1、存儲空間分配、作用域和生存期** static分配在靜態存儲區,作用域僅僅限于聲明該變量的函數內部。在程序 整個運行期間都不釋放,生存期貫穿于程序運行的整個過程。 auto類型分配在棧上,屬于動態存儲類別,占動態存儲區空間,作用域僅僅限于聲明該變量的函數內部。函數調用結束后自動釋放,生存期不過是在聲明該變量的函數內部。 **2、賦初值時的處理方式** static靜態局部變量在編譯時賦初值,即只賦初值一次; auto自動變量賦初值是在函數調用時進行,每調用一次函數重新給一次初值,相當于執行一次賦值語句。 **3、未賦初值時的處理方式** 如果在定義局部變量時不賦初值的話: static靜態局部變量,編譯時自動賦初值0(對數值型變量)或空字符(對字符變量)。 auto自動變量,如果不賦初值則它的值是一個不確定的值。 **靜態外部全局變量** 在C語言中static還用來聲明靜態外部全局變量,那么這個全局變量的作用域就被限制在本文件內部。 外部變量(即全局變量)是在函數的外部定義的,它的作用域為從變量定義處開始,到本程序文件的末尾。如果外部變量不在文件的開頭定義,其有效的作用范圍只限于定義處到文件終了。如果在定義點之前的函數想引用該外部變量,則應該在引用之前用關鍵字extern對該變量作“外部變量聲明”。表示該變量是一個已經定義的外部變量。有了此聲明,就可以從“聲明”處起,合法地使用該外部變量。 而如果我們聲明的全局變量不想被其他文件訪問和使用又該怎么辦? 那就是在聲明的時候前面加上關鍵字static。 **靜態外部函數** 在C語言中我們的函數默認都是全局的,也就是說你可以調用其他文件中的函數。在使用的時候,我們象前面一樣在頭文件中加上extern就可以了。但是有時候我們寫的函數并不想讓別的文件訪問和調用,那么我們在聲明函數的時候前面加上static就可以了。 使用內部函數的好處有二: 1、可以讓某些內部函數不為人所能使用,而僅僅讓調用者使用他能使用的東西,有利于保護代碼。 2、不同的人編寫不同的函數時,不用擔心自己定義的函數,是否會與其它文件中的函數同名。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看