午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

常量、變量、運算符

 長沙7喜 2018-04-16

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++ 的世界


    C++ 基礎(chǔ)


常量與變量

常量 

常量是指在程序中使用的一些具體的數(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ù),也就是獲得余數(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   using namespace std;   int main()   {       int i = 0;       cout < i++="">< endl;=""  =""  =""  ="" i="">
          cout < ++i="">< endl;=""  =""  =""  ="" return="">
      }   // 輸出   // 0   // 1


    關(guān)系運算符

    關(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é)果為真,即="">


    邏輯非(?。?/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
      00000101   結(jié)果為   00000101   輸出為   5


    按位或

    將參與運算的兩個數(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)系運算符,從高到低依次是 & ^ 、| 


    移位運算符

    左移(<)、右移(>>)


    左移(<>

       左邊的運算數(shù)的各二進(jìn)制位向左移若干位,  右邊的數(shù)是指定移動的位數(shù),高位丟棄,低位補 0

      a = 13   a <>
      00001101   // 左移 3 位   01101000


    右移(>>)

    將 >> 左邊的運算數(shù)的各二進(jìn)制位全部右移若干位,>> 右邊的數(shù)是指定移動的位數(shù)

      a = 13   a >> 3   00001101   // 右移 3 位   00000001

    注:對于有符號的數(shù),在右移時,符號位將隨同移動,當(dāng)操作數(shù)位正,最高位為 0,而為負(fù)數(shù),最高位為 1(最高位是補 0 或補 1 取決于編譯系統(tǒng)的規(guī)定),這里比較復(fù)雜

    賦值運算符

    基本的賦值運算符即 =,也就是把右邊操作數(shù)的值賦給左邊操作數(shù),除了基本的賦值運算符,還有復(fù)合賦值運算符,將運算符與賦值運算符(=)組合使用,復(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)先級

    常見優(yōu)先級

    算術(shù)運算符 > 關(guān)系運算符 > 邏輯運算符 > 賦值運算符

      注:邏輯運算符中的邏輯非(單目)優(yōu)先級高于算術(shù)運算符


    完整優(yōu)先級列表


    優(yōu)先級操作符描述結(jié)合性
    1::作用域解析從左到右
    2++   --后綴 自增、自減
    ()函數(shù)調(diào)用
    []數(shù)組下標(biāo)
    .通過引用選擇成員
    ?>通過指針選擇成員
    3++   --前綴 自增、自減從右到左
    +   ?正、負(fù)
    !   ~邏輯非、按位非
    (type)顯式類型轉(zhuǎn)換
    *解引用
    &取地址
    sizeof取對象大小
    newnew[]動態(tài)內(nèi)存分配
    deletedelete[]動態(tài)內(nèi)存去分配
    4.*   ->*成員指針運算符從左到右
    5*   /   %乘、除、求余
    6+   ?加、減
    7   >>按位左移、按位右移
    8   <>小于、小于或等于
    >   >=大于、大于或等于
    9==   !=等于、不等于
    10&按位與
    11^按位異或
    12|按位或
    13&&邏輯與
    14||邏輯或
    15?:三目運算符從右到左
    =賦值
    +=   ?=加法/減法賦值運算符
    *=   /=   %=乘法/除法/取余賦值運算符
    <>   >>=按位左移/右移賦值運算符
    &=   ^=   |=按位與/異或/或賦值運算符
    throw拋出異常
    17,逗號從左到右




      本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多