<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之旅 廣告
                # 變量基本概念 ## 什么是變量 - 表示的數據是可以經常修改的。當一個數據的值需要經常改變或者不確定時,就應該用變量來表示。 + 例如:游戲積分 + 變量分為全局變量,局部變量。全局變量定義在函數外部,程序開始到結束都一直在,而局部變量定義在函數內部,只能供函數使用,在函數內部有效 ## 如何定義變量 - 定義變量(聲明), 任何變量在使用之前,必須先進行定義。 - 定義變量的目:在內存中分配一塊存儲空間給變量,方便以后存儲數據。 - 如果定義了多個變量,就會為這多個變量分別分配不同的存儲空間。 + **格式1: 變量類型 變量名稱 ** ``` int a; float b; char ch; ``` + **格式2:變量類型 變量名稱,變量名稱** + 連續定義, 多個變量之間用逗號(,)號隔開 ``` int a,b; int a,b,c,d; ``` >+ 不同類型的變量占用不同大小的存儲空間。內存極其有限,分配適當的存儲空間 - 變量明的命名的規范 - 變量名屬于標識符,所以必須嚴格遵守標識符的命名原則 - 變量名要盡可能的望文知意、簡潔 ## 變量初始化和引用 ### 如何使用變量 - 賦值就是往變量里面存點東西,就是賦值。賦值語句后帶個分號; ``` int value; value = 998; // 賦值 ``` >+ 注意:這里的等號=,并不是數學中的“相等”,而是C語言中的賦值運算符,作用是將右邊的常量998賦值給左邊的變量value >+ 賦值的時候,= 號的左側必須是變量 (10=b,錯) >+ (2)規范:習慣將 = 的兩側 各加上一個 空格 ### 變量的初始化 - 變量第一次賦值,可以稱為“初始化” - 初始化的兩種形式 + 先定義,后初始化 ``` int value; value = 998; // 初始化 ``` + 定義的同時進行初始化 ``` int a = 10; // 完全初始化 int a, b=10; //部分初始化 int a=4, b=2; ``` + 其它表現形式 * 批量初始化 ``` int a,b,c; a = b = c =0; ``` + 思考: 不初始化里面存儲什么? ``` int a; //不會報錯,a里面存的內容: 1)隨機數 2)上次程序分配的存儲空間,存數一些 內容,“垃圾” 3)系統正在用的一些數據 ``` ### 如何修改變量值 - 可以修改變量的值,多次賦值。每次賦值都會覆蓋原來的值 ``` int i = 10; i = 20; // 修改變量值 ``` ### 變量之間的值傳遞 - 可以將一個變量的值賦值給另一個變量 ``` int a = 10; int b = a; ``` - 連續賦值 ``` int a,b,c; a = b = c = 0; ``` --- ### 如何查看變量的值 - 使用`printf`輸出一個/多個變量的值 ``` int a = 10, c = 11; printf("a=%d, c=%d", a, c); ``` - double\float\char的輸出,格式符的一些小技巧 ``` double height = 1.75; char blood = 'A'; printf("height=%.2f, 血型是%c", height, blood); ``` ## 變量的作用域 ### 變量的作用域 C語言中所有變量都有自己的作用域,申明變量的類型不同,其作用域也不同。C語言中的變 量,按照作用域的范圍可分為兩種, 即局部變量和全局變量。 ### 局部變量 局部變量也稱為內部變量。局部變量是在函數內作定義說明的。其作用域僅限于函數內(代碼塊), 離開該 函數后再使用這種變量是非法的。 + 例如: ``` int main(){ int i = 998; // 作用域開始 return 0; }// 作用域結束 ``` ``` int main(){ { int i = 998; // 作用域開始 }// 作用域結束 return 0; } ``` ``` int main(){ { { int i = 998;// 作用域開始 }// 作用域結束 } return 0; } ``` - 作用域補充說明(了解): + 主函數中定義的變量也只能在主函數中使用,不能在其它函數中使用。同時,主函數中 也不能使用其它函數中定義的變量。因為主函數也是一個函數,它與其它函數是平行關系。 + 形參變量是屬于被調函數的局部變量,實參變量是屬于主調函數的局部變量。 + 允許在不同的函數中使用相同的變量名,它們代表不同的對象,分配不同的單元,互不 干擾,也不會發生混淆。雖然允許在不同的函數中使用相同的變量名,但是為了使程序明了易 懂,不??倡在不同的函數中使用相同的變量名。 ### 全局變量 - 全局變量也稱為外部變量,它是在函數外部定義的變量。 ### 常見錯誤 - 變量名相同 int a = 10; int a = 12; - 變量的作用域不對 - 變量的創建和釋放過程 - 代碼塊作用域 { int a = 10; } ## 變量內存分析 ### 字節和地址 - 為了更好地理解變量在內存中的存儲細節,先來認識一下內存中的“字節”和“地址”。 - 內存以“字節為單位” ### 變量的存儲 - 一個變量所占用的存儲空間,不僅跟變量類型有關,而且還跟編譯器環境有關系。同一種類型的變量,在不同編譯器環境下所占用的存儲空間又是不一樣的 + 所占用字節數跟類型有關,也跟編譯器環境有關 + **內存由大到小尋址** + 變量存儲單元的第一個字節的地址就是該變量的地址 + 任何變量在內存中都是以二進制的形式存儲。一個負數的二進制形式,其實就是對它的正數的二進制形式進行取反后再+1。(取反的意思就是0變1、1變0) |類型|16位編譯器|32位編譯器|64位編譯器| |--|--|--|--| |char|1|1|1| |int|2|4|4| |float|4|4|4| |double|8|8|8| |short|2|2|2| |long|4|4|8| |long long|8|8|8| |void*|2|4|8| - 內存尋址示例 ``` #include <stdio.h> int main(int argc, const char * argv[]) { // 內存尋址從大到小,如果按照這種規則,那么先定義的遍歷內存地址一定大于后定義的變量 int number = 0; int value = 0; // 獲得變量的詳細地址(變量地址,16進制)'&變量名' printf("%p\n",&number); // 0x7fff5fbff6ec printf("%p\n",&value); // 0x7fff5fbff6e8 return 0; } ``` ### 取值范圍 - 不同數據類型所占的存儲空間是不一樣的,字節長度不一樣,包含的二進制位數就不一樣,能表示的數據范圍也就不一樣 - 如果賦值的時候超出了變量的取值范圍,那么將損失精度,得到“垃圾數據”(“垃圾數據”就是指并非我們想要的數據) |關鍵字|所占字節數|表示范圍| |--|--|--|--| |int|4|-2(31) ~ 2(31)-1| |signed short int|2|-2(15) ~ 2(15)-1| |signed long int|4|-2(31) ~ 2(31)-1| |unsigned int|4|0 ~ 2(32)-1| |unsigned short int|2|0 ~ 2(16)-1| |unsigned long int|4|0 ~ 2(32)-1| |float|4|絕對值E-37 ~ E+38| |double|8|絕對值E-307 ~ E+308|
                  <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>

                              哎呀哎呀视频在线观看