<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # C 存儲類別 > 原文: [https://www.programiz.com/c-programming/c-storage-class](https://www.programiz.com/c-programming/c-storage-class) #### 在本教程中,您將了解局部和全局變量的范圍和生存期。 此外,您還將學習靜態和寄存器變量。 C 編程中的每個變量都有兩個屬性:類型和存儲類。 類型是指變量的數據類型。 并且,存儲類確定變量的范圍,可見性和生存期。 有四種類型的存儲類別: 1. 自動 2. 外部 3. 靜態 4. 寄存器 * * * ## 局部變量 在塊內聲明的變量是自動變量或局部變量。 局部變量僅存在于聲明它的塊內部。 讓我們舉個例子。 ```c #include <stdio.h> int main(void) { for (int i = 0; i < 5; ++i) { printf("C programming"); } // Error: i is not declared at this point printf("%d", i); return 0; } ``` 當您運行上述程序時,將顯示錯誤未聲明的標識符`i` 。 這是因為`i`在`for`循環塊內聲明。 在該塊之外,未聲明。 讓我們再舉一個例子。 ```c int main() { int n1; // n1 is a local variable to main() } void func() { int n2; // n2 is a local variable to func() } ``` 在以上示例中,`n1`對于`main()`是本地的,`n2`對于`func()`是本地的。 這意味著您無法訪問`func()`內部的`n1`變量,因為它僅存在于`main()`內部。 同樣,您無法訪問`main()`中的`n2`變量,因為它僅存在于`func()`內部。 * * * ## 全局變量 在所有函數外部聲明的變量稱為外部或全局變量。 可以從程序內的任何函數訪問它們。 * * * ### 示例 1:全局變量 ```c #include <stdio.h> void display(); int n = 5; // global variable int main() { ++n; display(); return 0; } void display() { ++n; printf("n = %d", n); } ``` **輸出** ```c n = 7 ``` 假設在`file1`中聲明了全局變量。 如果您嘗試在另一個文件`file2`中使用該變量,則編譯器會抱怨。 為了解決此問題,在`file2`中使用關鍵字`extern`表示在另一個文件中聲明了外部變量。 * * * ## 寄存器變量 `register`關鍵字用于聲明寄存器變量。 寄存器變量應該比局部變量快。 但是,現代編譯器非常擅長代碼優化,使用寄存器變量將使程序運行更快的機會非常少。 除非您在嵌入式系統上工作,在該系統上您知道如何為給定應用優化代碼,否則將不使用寄存器變量。 * * * ## 靜態變量 通過使用`static`關鍵字聲明靜態變量。 例如; ```c static int i; ``` 靜態變量的值會一直保留到程序結束。 * * * ### 示例 2:靜態變量 ```c #include <stdio.h> void display(); int main() { display(); display(); } void display() { static int c = 1; c += 5; printf("%d ",c); } ``` **輸出** ```c 6 11 ``` 在第一個函數調用期間,`c`的值被初始化為 1。其值增加了 5。現在,`c`的值是 6,將其打印在屏幕上。 在第二個函數調用期間,`c`不會再次初始化為 1。 這是因為`c`是靜態變量。`c`的值增加 5。現在,它的值將為 11,并打印在屏幕上。
                  <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>

                              哎呀哎呀视频在线观看