[C++] 變數
[Q]人類與電腦怎麼記東西的?
• 大腦某些區域的神經元或神經元網路產生變化• 越複雜的東西要花越久的時間去記憶
• 電腦的記憶體某些區域的位元或某些位元產生變化
• 越複雜的東西要花越大的空間去記憶
• 那個東西叫作「變數」(variables)
• 因此一個變數會有以下三種資訊 (變數三要素)
• 「資料型別」 (data types) : 不同類型的資料要花費的記憶體空間大小不同。
• 「變數名稱」 (id) :用來稱呼該變數 。
• 「記憶體位置」(address):記在記憶體的哪裡 。
資料型別
• bool 布林值 ( Boolean ) ( 只有2種可能( true or false ),大小為1 bit )• char 字元 ( character ) (almost all 8 bits = 1 byte -- ASCII centric )
• 整數 ( integer ) :
• short 短整數 ( usually 16 bits = 2 bytes ; could be same as int )
• int 整數 ( at least 16 bits, usually 32 bits = 4 bytes )
• long 長整數 ( usually 32 or 64 bits ; could be same as int = 4 bytes )
• long long 長整數 ( 8 bytes )
• 浮點數 ( floating point ) :
• float 單精確度浮點數 ( usually 32 bits = 4 bytes , could be same as double )
• double 雙精確度浮點數 ( at least 32 bits ; usually 64 bit = 8 bytes )
• 可以利用 sizeof() 運算子得到變數或型別的大小 ( 也可以得變數大小 )
• 例:cout << sizeof ( int ) << endl ;
• 可以記最多的型別:long double ( 16 bytes )
變數名稱
• "Identifier" ( ID ) = 使用者自己定義的名字• 在同個 scope 下不能重複
• 有效 ID ( Valid identifiers ):
• 以英文字母或底線 ( underscore (_) ) 開頭
• 後接任意數字、字母、底線
• 大小寫敏感 (case - sensitive)
• "sum" 跟 "Sum" 不同名稱
• 不可以用數字開頭
變數宣告
• 變數必須先宣告才可使用!( 先告訴電腦需要多大的記憶體空間(利用資料型別),電腦會幫你找到一個這麼大的空間,並保留該空間給你存放這個變數,尚未給初始值 )
• 型式:type name ;
• Example:
• int num ;
• float pi ;
• char ch ;
• bool isDead ;
• 可同時宣告多個變數 ( 以逗號分隔 )
• Examples:
• int i , j , k ;
• float f , g , h ;
變數的能見度 (Scope) 與生存時間 (Lifetime)
• Scope: 從宣告那行到遇到自己那層的右大括號為止。• Lifetime: 看記憶體位置而定
• 堆積 (heap):
• 程式開始執行到程式終止 ( global variables, static local, ... )
• new 到 delete ( 動態 )
• 堆疊 (stack):
• 從宣告那行到遇到自己那層的右大括號為止。( local variables , parameters ... )
留言
張貼留言