欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解C++編程中運算符的使用

 更新時間:2015年09月07日 12:05:50   投稿:goldensun  
這篇文章主要介紹了詳解C++編程中運算符的使用,是C++入門學(xué)習中的基礎(chǔ)知識,需要的朋友可以參考下

C++的運算符十分豐富,使得C++的運算十分靈活方便。例如把賦值號(=)也作為運算符處理,這樣,a=b=c=4就是合法的表達式,這是與其他語言不同的。C++提供了以下運算符:
算術(shù)運算符
+(加)  -(減)  *(乘)  /(除)  %(整除求余)  ++(自加)  --(自減)
關(guān)系運算符
>(大于)  <(小于)   ==(等于)  >=(大于或等于)  <=(小于或等于)  !=(不等于)
邏輯運算符
&&(邏輯與)  ||(邏輯或)   !(邏輯非)
位運算符
<<(按位左移)  >>(按位右移)  &(按位與)  |(按位或)   ^(按位異或)  ~(按位取反)
賦值運算符 (=及其擴展賦值運算符)
條件運算符 (?:)
逗號運算符 (,)
指針運算符 (*)
引用運算符和地址運算符 (&)
求字節(jié)數(shù)運算符(sizeof)
強制類型轉(zhuǎn)換運算符( (類型) 或類型( ))
成員運算符 (.)
指向成員的運算符 (->)
下標運算符 ([ ])
其他 (如函數(shù)調(diào)用運算符())

基本的算術(shù)運算符

在本章中主要介紹算術(shù)運算符與算術(shù)表達式,賦值運算符與賦值表達式,逗號運算符與逗號表達式,其他運算符將在以后各章中陸續(xù)介紹。

需要說明,兩個整數(shù)相除的結(jié)果為整數(shù),如5/3的結(jié)果值為1,舍去小數(shù)部分。但是,如果除數(shù)或被除數(shù)中有一個為負值,則舍入的方向是不固定的。例如,-5/3在有的C++系統(tǒng)上得到結(jié)果-1,有的C++系統(tǒng)則給出結(jié)果-2。多數(shù)編譯系統(tǒng)采取“向零取整”的方法,即5/3的值等于1,-5/3的值等于-1,取整后向零靠攏。

如果參加+,  -,  *, / 運算的兩個數(shù)中有一個數(shù)為float型數(shù)據(jù),則運算的結(jié)果是double型,因為C++在運算時對所有float型數(shù)據(jù)都按double型數(shù)據(jù)處理。
算術(shù)表達式和運算符的優(yōu)先級與結(jié)合性

用算術(shù)運算符和括號將運算對象(也稱操作數(shù))連接起來的、符合C++語法規(guī)則的式子,稱C++算術(shù)表達式。運算對象包括常量、變量、函數(shù)等。例如,下面是一個合法的C++算術(shù)表達式:

  a*b/c-1.5+'a'

C++語言規(guī)定了運算符的優(yōu)先級和結(jié)合性。在求解表達式時,先按運算符的優(yōu)先級別高低次序執(zhí)行,例如先乘除后加減。如有表達式a-b*c,b的左側(cè)為減號,右側(cè)為乘號,而乘號優(yōu)先于減號,因此,相當于a-(b*c)。如果在一個運算對象兩側(cè)的運算符的優(yōu)先級別相同,如a-b+c,則按規(guī)定的“結(jié)合方向”處理。

C++規(guī)定了各種運算符的結(jié)合方向(結(jié)合性),算術(shù)運算符的結(jié)合方向為“自左至右”,即先左后右,因此b先與減號結(jié)合,執(zhí)行a-b的運算,再執(zhí)行加c的運算?!白宰笾劣业慕Y(jié)合方向”又稱“左結(jié)合性”,即運算對象先與左面的運算符結(jié)合。以后可以看到有些運算符的結(jié)合方向為“自右至左”,即右結(jié)合性(例如賦值運算符)。關(guān)于“結(jié)合性”的概念在其他一些高級語言中是沒有的,是C和C++的特點之一,希望能弄清楚。

表達式中各類數(shù)值型數(shù)據(jù)間的混合運算

在表達式中常遇到不同類型數(shù)據(jù)之間進行運算,如:

  10+'a'+1.5-8765.1234*'b'

在進行運算時,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進行運算。轉(zhuǎn)換的規(guī)則按圖所示。

假設(shè)已指定i為整型變量,f為float變量,d為double型變量,e為long型,有下面表達式:

  10+'a'+i*f-d/e

運算次序為:
進行10+'a'的運算,先將'a'轉(zhuǎn)換成整數(shù)97,運算結(jié)果為107。
進行i*f的運算。先將i與f都轉(zhuǎn)換成double型,運算結(jié)果為double型。
整數(shù)107與i*f的積相加。先將整數(shù)107轉(zhuǎn)換成雙精度數(shù)(小數(shù)點后加若干個0,即107.000…00),結(jié)果為double型。
將變量e轉(zhuǎn)換成double型,d/e結(jié)果為double型。
將10+'a'+i*f的結(jié)果與d/e的商相減,結(jié)果為double型。

上述的類型轉(zhuǎn)換是由系統(tǒng)自動進行的。

C++自增和自減運算符(--和++)
在C和C++中,常在表達式中使用自增(++)和自減(--)運算符,他們的作用是使變量的值增1或減1,如:
++i(在使用i之前,先使i的值加1,如果i的原值為3,則執(zhí)行j=++i后,j的值為4)
--i (在使用i之前,先使i的值減1,如果i的原值為3,則執(zhí)行j=--i后,j的值為2)
i++ (在使用i之后,使i的值加1,如果i的原值為3,則執(zhí)行j=i++后,j的值為3,然后i變?yōu)?)
i--(在使用i之后,使i的值減1,如果i的原值為3,則執(zhí)行j=i--后,j的值為3,然后i變?yōu)?)
++i是先執(zhí)行i=i+1后,再使用i的值;而i++是先使用i的值后,再執(zhí)行i=i+1。

正確地使用++和--,可以使程序簡潔?清晰?高效。請注意:
自增運算符(++)和自減運算符(--)只能用于變量,而不能用于常量或表達式。
++和--的結(jié)合方向是“自右至左”。
自增運算符(++)和自減運算符(--)使用十分靈活,但在很多情況下可能出現(xiàn)歧義性,產(chǎn)生“意想不到”的副作用。
自增(減)運算符在C++程序中是經(jīng)常見到的,常用于循環(huán)語句中,使循環(huán)變量自動加1。也用于指針變量,使指針指向下一個地址。

相關(guān)文章

  • 詳解C/C++ 的*和&用法

    詳解C/C++ 的*和&用法

    這篇文章主要介紹了C/C++ 的*和&的相關(guān)知識,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 數(shù)據(jù)結(jié)構(gòu)用兩個棧實現(xiàn)一個隊列的實例

    數(shù)據(jù)結(jié)構(gòu)用兩個棧實現(xiàn)一個隊列的實例

    這篇文章主要介紹了C++語言數(shù)據(jù)結(jié)構(gòu)用兩個棧實現(xiàn)一個隊列的實例的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • C++?Boost?Spirit精通教程

    C++?Boost?Spirit精通教程

    Boost是為C++語言標準庫提供擴展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標準庫的后備,是C++標準化進程的開發(fā)引擎之一,是為C++語言標準庫提供擴展的一些C++程序庫的總稱
    2022-11-11
  • C語言詳解如何實現(xiàn)順序棧

    C語言詳解如何實現(xiàn)順序棧

    順序棧,就是用一組地址連續(xù)的存儲單元來存放棧元素,然后用一個棧結(jié)構(gòu)去維護一個棧。在C中,可用動態(tài)開辟的數(shù)組去表示,維護的棧結(jié)構(gòu)需要有一個棧底和一個棧頂指針
    2022-04-04
  • C語言實現(xiàn)天氣信息管理系統(tǒng)

    C語言實現(xiàn)天氣信息管理系統(tǒng)

    這篇文章主要介紹了C語言實現(xiàn)天氣信息管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • C語言數(shù)組實現(xiàn)三子棋應(yīng)用實例

    C語言數(shù)組實現(xiàn)三子棋應(yīng)用實例

    這篇文章主要為大家詳細介紹了C語言數(shù)組實現(xiàn)三子棋應(yīng)用實例,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 帶你從編碼角度分析C++重載原理

    帶你從編碼角度分析C++重載原理

    這篇文章主要為大家介紹了從編碼角度分析C++重載原理,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • C語言利用結(jié)構(gòu)體數(shù)組實現(xiàn)學(xué)生成績管理系統(tǒng)

    C語言利用結(jié)構(gòu)體數(shù)組實現(xiàn)學(xué)生成績管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言利用結(jié)構(gòu)體數(shù)組實現(xiàn)學(xué)生成績管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • c++ map索引不存在的key可能導(dǎo)致的后果分析

    c++ map索引不存在的key可能導(dǎo)致的后果分析

    這篇文章主要介紹了c++ map索引不存在的key可能導(dǎo)致的后果分析,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • 指向類成員函數(shù)的指針其實并非指針

    指向類成員函數(shù)的指針其實并非指針

    對于指向類成員的指針,必須緊記,指向類成員(非static)的指針并非指針
    2013-08-08

最新評論