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