Care and diligence bring luck. If I can't hear your heartbeat, you're too far away. 時隔一月有余,匆匆?guī)磉@篇 C++ 基礎,,向大家介紹 常量,、變量、運算符 等內(nèi)容,希望可以帶領大家開始邁入 C++ 的世界
常量是指在程序中使用的一些具體的數(shù),、字符,,在程序運行的過程中,常量的值是無法被更改的 整型常量 表示整數(shù)的常量,,有三種表現(xiàn)形式 十進制:如 22,、33 八進制:以 0 開頭,由 0-7 構(gòu)成,,如 012 十六進制:以 0x 開頭,,如 0x12A 實型常量 又稱實數(shù)或浮點數(shù),如 3.1,、-5.1E+2(科學記數(shù)法) 字符常量 用單引號包括起來的字符,,如 'a'、'1' 注:此處是用單引號包括,,如果是用雙引號包括('a'),,被稱為字符串,相對應的就是字符串常量,,而不是字符常量 常量定義的兩種方法 常量除了可以直接調(diào)用,,還可以給常量取個名字,即用一個標識符來代表它,,這里以標識符形式出現(xiàn)的常量,,也就是常量的定義 符號常量 利用 #define (與 C++ 本身沒有關系,它是一個編譯器指令,,或者稱為預處理指令,,所以寫在最上面)來定義 #define 標識符 常量字符 #define PI 3.14159 注:沒有分號 常值變量 利用 const (C++ 的一個關鍵字)關鍵字定義 const 標識符 = 常量字符; const double PI = 3.14159; 上面兩種方法,推薦使用 const 來定義常量 const 可以定義數(shù)據(jù)類型,,提高了類型安全性,,如上面的 double const 作為一個常值變量,適用面更加廣,,語法上也更好理解 注:常量名一般用大寫,,而變量名用小寫,以便于區(qū)分
變量代表了一個存儲單元,,其中的值是可以改變的,,因此稱為變量。為了區(qū)別不同的變量,,必須給每個變量(存儲單元)取一個名(稱為變量名),,該變量(存儲單元)存儲的值稱為變量的值,變量中能夠存儲值得類型為變量的類型 變量名 用一個合法的標識符來代表一個變量,,如 n, m 等都是合法的變量名,。在程序中用到的變量需要先定義后使用,,變量名應遵循自定義標識符的命名規(guī)則 命名規(guī)則: 變量名只能由字母、數(shù)字,、下劃線組成,必須由字母或下劃線開頭,,不能用 關鍵字來命名,,區(qū)分大小寫 注:對于變量名的長度,不同的 C++ 編譯器有不同的規(guī)定,,考慮到系統(tǒng)的可移植性,,變量名一般不要超過8個字符 變量的定義 數(shù)據(jù)類型 變量表 // C++ 允許在定義變量的同時為變量賦初值 int i = 1; 變量的訪問 變量一經(jīng)定義,系統(tǒng)就在計算機內(nèi)存中為其分配一個存儲空間,,在程序中使用到變量時,,就在相應的內(nèi)存中存入數(shù)據(jù)或取出數(shù)據(jù),這種操作被稱為變量的訪問 變量的類型 變量可以是標準數(shù)據(jù)類型 int,、short,、long、float,、double,、char 等,也可以是用戶自定義的各種類型(這些數(shù)據(jù)類型在下面)
算術(shù)運算符用于各類數(shù)值的運行,,一共分為七種:加(+),、減(-)、乘(*),、除(/),、求余(%)、自增(++),、自減(--) 模運算符(%) 模也稱為求余或取余,,模運算符即求余運算符(余在這里表示余數(shù),也就是獲得余數(shù)的運算符),,運算所需變量為兩個,,所以是雙目運算符 // 5 除以 2 的余數(shù)為 1 a = 5 % 2; 注:兩個變量必須都為整型 除法運算符(/) C++ 中的除法運算符有一些特殊之處:如果 a、b 均是整型,,那么除法獲得的是它們的商 // 5 除以 2 為 2 a = 5 / 2; // 5.0 除以 2 為 2.5 a = 5.0 / 2; 自增自減運算符(++,,--) 自增、自減運算符用來對一個操作數(shù)進行加1或減1運算,,其結(jié)果仍然賦予該操作數(shù),,操作數(shù)只能是變量,不能是常量或表達式 // 自增 x++,,即 x = x + 1 x++; // 自減 x--,,即 x = x - 1 x--; 注:x++ 和 ++x 的區(qū)別 // 在表達式中使用,區(qū)別在于 x++ 先賦值,再運算,,++x,,先運算,再賦值 a = x++; // 等價于 a = x; x = x + 1; a = ++x; // 等價于 x = x + 1; a = x; #include
關系運算符用于比較數(shù)值的大小,,一共分為六種:大于(>),、小于(<)、等于(=),、大于等于(>=),、小于等于(<>)、等于(=),、大于等于(>關系運算符均為雙目運算符,,結(jié)果為整型,且只有兩種:0 或 1,,0 代表 假(錯誤),,1 代表 真(正確) // 關系運算符的優(yōu)先級在算術(shù)運算符之后,賦值運算符之前 c = a + b > 3; // 先將 a + b 再和 3 做比較,,最后賦值給 c
邏輯運算符是根據(jù)表達式的值來返回真(1)假(0),,一共提供了三種運算符:邏輯與(&&),邏輯或(||),,邏輯非(!),。邏輯與、邏輯或均為雙目運算符,,具有左結(jié)合性(從左至右依次執(zhí)行),,邏輯非為單目運算符,具有右結(jié)合性 邏輯與(&&) 參與運算的兩個量都為真時,,結(jié)果為真,,否則為假 4>3 && 3>2 // 結(jié)果為真,即 1 邏輯或(||) 參與運算的兩個量只要有一個為真,,結(jié)果就為真,,只有兩個量都為假時,才為假 4>3 || 3<2 //="" 結(jié)果為真,,即="">2> 邏輯非(?。?/span> 參與運算量為真,結(jié)果就為假,,否則為真 !(5>4) // 結(jié)果為假,,即 0 注:雖然上面都是用 1 代表 真,0 代表 假,,但是反過來判斷一個量為 真 還是 假 的時候,,用 非0 代表 真,,0 代表 假,即 5 || 0 // 結(jié)果為真 5 && 0 // 結(jié)果為假
位運算符作用于位,,并逐位執(zhí)行操作,,可以分為兩類:位邏輯運算符、移位運算符,。 位邏輯運算符 按位與(& / and),、按位或(| / or)、按位異或(^),、按位取反(~) 按位與 將參與運算的兩個數(shù)對應的二進制位相與,只有對應的二進制均為 1 時,,結(jié)果的對應位才為 1,,否則為 0 13 & 5 00001101 按位或 將參與運算的兩個數(shù)對應的二進制位相或,只要對應的兩個二進制有一個為 1 時,,結(jié)果就為 1,,只有都為 0 時,結(jié)果才為 0 13 | 5 00001101 00000101 結(jié)果為 00001101 輸出為 13 按位異或 將參與運算的兩個數(shù)對于的二進制位相異或,,當對應的二進制位上的數(shù)字不相同時,,結(jié)果為 1,否則為 0 13 ^ 5 00001101 00000101 結(jié)果為 00001000 輸出為 8 按位取反 將運算數(shù)的各個二進制位按位取反 ~13 00001101 結(jié)果為 11110010 注:這里會牽扯到負數(shù)的符號問題(二進制中用最前面的 1 來代表負數(shù)),,又會引申出補碼相關內(nèi)容(以后有需要再講解吧) 優(yōu)先級 按位與,、按位或、按位異或 都是雙目運算符,,其結(jié)合性都是從左向右,,優(yōu)先級高于邏輯運算符,低于關系運算符,,從高到低依次是 移位運算符 左移(<),、右移(>>) 左移(<> 將 a = 13 a <> 右移(>>) 將 a = 13 a >> 3 00001101 // 右移 3 位 00000001 注:對于有符號的數(shù),在右移時,,符號位將隨同移動,,當操作數(shù)位正,最高位為 0,,而為負數(shù),,最高位為 1(最高位是補 0 或補 1 取決于編譯系統(tǒng)的規(guī)定),,這里比較復雜
基本的賦值運算符即 =,也就是把右邊操作數(shù)的值賦給左邊操作數(shù),,除了基本的賦值運算符,,還有復合賦值運算符,將運算符與賦值運算符( += 加法賦值 -= 減法賦值 *= 乘法賦值 /= 除法賦值 %= 模運算賦值 // 以下不怎么常用 <= 左移賦值="" ="">>= 右移賦值 &= 位邏輯與賦值 |= 位邏輯或賦值 ^= 位邏輯異或賦值=> 賦值語句 賦值語句是由賦值表達式再加上分號構(gòu)成的表達式語句,,它是程序中使用最多的語句之一,在 C++ 語言中,,= 作為賦值運算符,,而不表示 等于 判斷(用 == 作為 等于 判斷) 變量 = 表達式; 注1:賦值語句中右邊的表達式也可以是賦值語句,也就是說可以寫成下面的樣子 變量 = 變量 = 表達式,; // 例如 a = b = c = 1; // 等價于 a = 1; b = 1; c = 1; 注2:如果賦值運算符(=)兩邊的數(shù)據(jù)類型不同,,系統(tǒng)將會自動進行類型轉(zhuǎn)換,即將右邊的數(shù)據(jù)類型轉(zhuǎn)換成左邊的變量類型,,例如 // 變量 a 是整型,,b 是 浮點型,后面的賦值會自動去掉小數(shù)部分,,只獲取整數(shù) int a; folat b; b = 1.1; a = b; cout < a="">< endl;="" //="" 輸出="" a="" 為="">
常見優(yōu)先級 算術(shù)運算符 > 關系運算符 > 邏輯運算符 > 賦值運算符 注:邏輯運算符中的邏輯非(單目)優(yōu)先級高于算術(shù)運算符 完整優(yōu)先級列表
|
|