04.算術(shù)運算符

一恼策、算術(shù)運算

C語言一共有34種運算符,包括了常見的加減乘除運算

    1潮剪、加法運算+
    除開能做加法運算,還能表示正號:+5分唾、+90
    2抗碰、減法運算-
    除開能做減法運算,還能表示符號:-10绽乔、-29
    3弧蝇、乘法運算*
       注意符號,不是x折砸,而是*
    4看疗、除法運算/
       注意符號,不是÷睦授,也不是\两芳,而是/
       整數(shù)除于整數(shù),還是整數(shù)去枷。1/2的值是0怖辆,這個并不是二分之一
    5是复、取余運算%
       什么是取余:兩個整數(shù)相除之后的余數(shù)
       %兩側(cè)只能是整數(shù)
       正負性取決于%左側(cè)的數(shù)值
    6、注意點
        ?自動類型轉(zhuǎn)換
           int a = 10.6;
           int b = 10.5 + 1.7;
           自動將大類型轉(zhuǎn)換為了小類型竖螃,會丟失精度

        ?自動類型提升
           int b = 10.5 + 10;
           將右邊的10提升為了double類型
           double b = 1.0 / 2;
           解決除法的精度問題

        ?強制類型轉(zhuǎn)換
           double a = (double)1 / 2;
           double b = (double)(1 / 2);

        ?運算順序
           表達式
           結(jié)合性(結(jié)合方向):2+3+4
           優(yōu)先級:5+4*8-3

二淑廊、賦值運算

1、簡單賦值

int a = 10 + 5;的運算過程
a = b = 10;的運算過程
等號左邊不能是常量特咆,比如10 = 11;

2季惩、復(fù)合賦值

復(fù)加減乘除余:a += 4 + 5;

3、自增自減

? 簡單使用
        ++  自增運算符腻格。如a++画拾,++a,都等價于a = a+1
        自減運算符荒叶。如a--碾阁,--a,都等價于a = a-1
        5++是錯誤的

? ++a和a++的區(qū)別
        int a = 10;
        a++;  ++a;
        int b = a++;  //b的結(jié)果還是10
        int b = ++a;//b的結(jié)果為11
  總結(jié)??: a的結(jié)果都是11,a的值始終會做疊加些楣,如果是++a脂凶,   
          b的值才會做疊加

四、sizeof

1愁茁、作用
用來計算一個變量或者一個常量蚕钦、一種數(shù)據(jù)類型所占的內(nèi)存字節(jié)數(shù)

2、基本形式

    ?   sizeof( 變量\常量 )
    ?   sizeof 變量\常量
    ?   sizeof( 數(shù)據(jù)類型 )
    ?   不能是sizeof 數(shù)據(jù)類型,必須得有括號

練習(xí)結(jié)果??

#include <stdio.h>

int main()
{
    int a = sizeof(int);
    
    
    int b = sizeof(2.8);
    
    printf("int所占字節(jié)數(shù):%d\n",a);//輸出為4
    
    
    printf("double所占字節(jié)數(shù):%d\n",b);//輸出為8
    
}

五鹅很、關(guān)系運算符

1嘶居、條件判斷
  ? 默認情況下,我們在程序中寫的每一句正確代碼都會被執(zhí)行促煮。
    但很多時候邮屁,我們想在某個條件成立的情況下才執(zhí)行某一段代碼
  ? 這種情況的話可以使用條件語句來完成,但是我們暫時不學(xué)習(xí)條件語句菠齿,
    先來看一些更基礎(chǔ)的知識:如何判斷一個條件成不成立佑吝。
2、真假
    ? 在C語言中绳匀,條件成立稱為“真”芋忿,條件不成立稱為“假”,
      因此疾棵,判斷條件是否成立戈钢,就是判斷條件的“真假”。
    ? 怎么判斷真假呢是尔?C語言規(guī)定殉了,任何數(shù)值都有真假性, 
      任何非0值都為“真”嗜历,只有0才為“假”。
      也就是說,108宗兼、-18唁奢、4.5、-10.5等都是“真”,0則是“假”。
      #提交判斷返回的是一個bool類型
      #true為1,false為0
      #要輸出bool需要導(dǎo)入#include <stdbool.h>
3傻粘、使用注意
    ? 關(guān)系運算符中==、!=的優(yōu)先級相等帮掉,<弦悉、<=、>蟆炊、>=的優(yōu)先級相等稽莉,且(==、!=)的優(yōu)先級低于()
    ? 關(guān)系運算符的結(jié)合方向為“從左往右”: 4>3>2
    ? 關(guān)系運算符的優(yōu)先級小于算術(shù)運算符:3+4>8-2

六涩搓、邏輯運算符

   ?  有時候污秆,我們需要在多個條件同時成立的時候才能執(zhí)行某段代碼,  
      比如:用戶只有同時輸入了QQ和密碼昧甘,才能執(zhí)行登錄代碼良拼,
      如果只輸入了QQ或者只輸入了密碼,就不能執(zhí)行登錄代碼充边。
      這種情況下庸推,我們就要借助于C語言提供的邏輯運算符。
   ?  邏輯運算的結(jié)果只有2個:“真”為1浇冰,“假”為0
1贬媒、&& 邏輯與
1> 使用格式
“條件A && 條件B”
2> 運算結(jié)果
只有當(dāng)條件A和條件B都成立時,結(jié)果才為1肘习,也就是“真”掖蛤;其余情況的結(jié)果都為0,也就是“假”井厌。因此,條件A或條件B只要有一個不成立致讥,結(jié)果都為0仅仆,也就是“假”
3> 運算過程
總是先判斷條件A是否成立
    ?   如果條件A成立,接著再判斷條件B是否成立:如果條件B成立垢袱,“條件A && 條件B”的結(jié)果就為1墓拜,即“真”,如果條件B不成立请契,結(jié)果就為0咳榜,即“假”
    ?   如果條件A不成立夏醉,就不會再去判斷條件B是否成立:因為條件A已經(jīng)不成立了,不管條件B如何涌韩,“條件A && 條件B”的結(jié)果肯定是0畔柔,也就是“假”
4> 舉例
邏輯與的結(jié)合方向是“自左至右”。比如表達式 (a>3) && (a<5)
    ?   若a的值是4:先判斷a>3臣樱,成立靶擦;再判斷a<5,也成立雇毫。因此結(jié)果為1
    ?   若a的值是2:先判斷a>3玄捕,不成立,停止判斷棚放。因此結(jié)果為0
    ?   因此枚粘,如果a的值在(3, 5)這個范圍內(nèi),結(jié)果就為1飘蚯;否則馍迄,結(jié)果就為0
5> 注意
    ?   若想判斷a的值是否在(3, 5)范圍內(nèi),千萬不能寫成
         3<a<5孝冒,因為關(guān)系運算符的結(jié)合方向為“從左往右”柬姚。 
         比如a為2,它會先算3<a庄涡,也就是3<2量承,條件不成立,結(jié)果    為0穴店。再與5比較撕捍,即0<5,條件成立泣洞,結(jié)果為1忧风。
         因此 3<a<5的結(jié)果為1,條件成立球凰,也就是說當(dāng)a的值為2時狮腿,a的值是在(3, 5)范圍內(nèi)的。這明顯是不對的呕诉。
         正確的判斷方法是:(a>3) && (a<5)
    ?   C語言規(guī)定:任何非0值都為“真”缘厢,只有0才為“假”。
         因此邏輯與也適用于數(shù)值甩挫。比如 5 && 4的結(jié)果是1贴硫,為“真”;
         -6 && 0的結(jié)果是0,為“假”
2英遭、|| 邏輯或
1> 使用格式
  “條件A || 條件B”
2> 運算結(jié)果
   當(dāng)條件A或條件B只要有一個成立時(也包括條件A和條件B都成立)间护,
   結(jié)果就為1,也就是“真”挖诸;只有當(dāng)條件A和條件B都不成立時汁尺,
   結(jié)果才為0,也就是“假”税灌。
3> 運算過程
   總是先判斷條件A是否成立
    ?   如果條件A成立均函,就不會再去判斷條件B是否成立:因為條件A已經(jīng)成立了,不管條件B如何菱涤,“條件A || 條件B”的結(jié)果肯定是1苞也,也就是“真”
    ?   如果條件A不成立,接著再判斷條件B是否成立:如果條件B成立粘秆,“條件A || 條件B”的結(jié)果就為1如迟,即“真”,如果條件B不成立攻走,結(jié)果就為0殷勘,即“假”
4> 舉例
   邏輯或的結(jié)合方向是“自左至右”。比如表達式 (a<3) || (a>5)
    ?   若a的值是4:先判斷a<3昔搂,不成立玲销;再判斷a>5,也不成立摘符。因此結(jié)果為0
    ?   若a的值是2:先判斷a<3贤斜,成立,停止判斷逛裤。因此結(jié)果為1
    ?   因此瘩绒,如果a的值在(-∞, 3)或者(5, +∞)范圍內(nèi),結(jié)果就為1带族;否則锁荔,結(jié)果就為0
 
5> 注意
   C語言規(guī)定:任何非0值都為“真”,只有0才為“假”蝙砌。
   因此邏輯或也適用于數(shù)值阳堕。比如 5 || 4的結(jié)果是1,
   為“真”择克;-6 || 0的結(jié)果是1嘱丢,為“真”;0 || 0的結(jié)果是0祠饺,為“假”
5、 邏輯非
1> 使用格式
     “! 條件A”
2> 運算結(jié)果
     其實就是對條件A進行取反:若條件A成立汁政,結(jié)果就為0道偷,即“假”缀旁;若條件A不成立,結(jié)果就為1勺鸦,即“真”并巍。也就是說:真的變假,假的變真换途。
3> 舉例
     邏輯非的結(jié)合方向是“自右至左”懊渡。比如表達式 ! (a>5)
    ?   若a的值是6:先判斷a>5,成立军拟,再取反之后的結(jié)果為0
    ?   若a的值是2:先判斷a>3剃执,不成立,再取反之后的結(jié)果為1
         因此懈息,如果a的值大于5肾档,結(jié)果就為0;否則辫继,結(jié)果就為1
4> 注意
    ?   可以多次連續(xù)使用邏輯非運算符:!(4>2)結(jié)果為0怒见,
是“假”,!!(4>2)結(jié)果為1姑宽,是“真”遣耍,!!!(4>2)結(jié)果為0,是“假”
    ?   C語言規(guī)定:任何非0值都為“真”炮车,只有0才為“假”舵变。
         因此,對非0值進行邏輯非!運算的結(jié)果都是0示血,對0值進行邏輯非!運算的結(jié)果為1棋傍。
         !5、!6.7难审、!-9的結(jié)果都為0瘫拣,!0的結(jié)果為1
 
4.優(yōu)先級
    ?   邏輯運算符的優(yōu)先級順序為: 小括號() > 負號 - > ! > 算術(shù)運算符 > 關(guān)系運算符 > && > ||
    ?   表達式!(3>5) || (2<4) && (6<1) :先計算 !(3>5)、(2<4)告喊、(6<1)麸拄,結(jié)果為1,式子變?yōu)? || 1 && 0黔姜,再計算1 && 0拢切,式子變?yōu)? || 0,最后的結(jié)果為1
    ?   表達式3+2<5||6>3 等價于 ((3+2) < 5) || (6>3)秆吵,結(jié)果為1
    ?   表達式4>3 && !-5>2 等價于 (4>3) &&  ((!(-5)) > 2) 淮椰,結(jié)果為0
5、 三目運算符
N目運算符->三目運算符
    ?   int a = 5?10:2;
    ?   獲得a、b中的最大數(shù)
    ?   獲得a主穗、b泻拦、c中的最大數(shù)
先運行?左側(cè)忽媒,如果成立則取?右邊的值争拐,如果失敗則是右邊的右邊
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市晦雨,隨后出現(xiàn)的幾起案子架曹,更是在濱河造成了極大的恐慌,老刑警劉巖闹瞧,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绑雄,死亡現(xiàn)場離奇詭異,居然都是意外死亡夹抗,警方通過查閱死者的電腦和手機绳慎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來漠烧,“玉大人杏愤,你說我怎么就攤上這事∫雅В” “怎么了珊楼?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長度液。 經(jīng)常有香客問我厕宗,道長,這世上最難降的妖魔是什么堕担? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任已慢,我火速辦了婚禮,結(jié)果婚禮上霹购,老公的妹妹穿的比我還像新娘佑惠。我一直安慰自己,他們只是感情好齐疙,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布膜楷。 她就那樣靜靜地躺著,像睡著了一般贞奋。 火紅的嫁衣襯著肌膚如雪赌厅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天轿塔,我揣著相機與錄音特愿,去河邊找鬼仲墨。 笑死,一個胖子當(dāng)著我的面吹牛洽议,可吹牛的內(nèi)容都是我干的宗收。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼亚兄,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了采驻?” 一聲冷哼從身側(cè)響起审胚,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎礼旅,沒想到半個月后膳叨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡痘系,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年菲嘴,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汰翠。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡龄坪,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出复唤,到底是詐尸還是另有隱情健田,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布佛纫,位于F島的核電站妓局,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏呈宇。R本人自食惡果不足惜好爬,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望甥啄。 院中可真熱鬧存炮,春花似錦、人聲如沸型豁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽迎变。三九已至充尉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間衣形,已是汗流浹背驼侠。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工姿鸿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人倒源。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓苛预,卻偏偏與公主長得像,于是被迫代替她去往敵國和親笋熬。 傳聞我的和親對象是個殘疾皇子热某,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容