C語言中算數(shù)運(yùn)算符主要包括:加法+、減法-、乘法*、除法/、求模%、自增++、自減--。
自增++和自減--,是單目運(yùn)算符,因?yàn)樗鼈冎恍枰粋€(gè)操作數(shù),加法+、減法-、乘法*、除法/、求模%,是雙目運(yùn)算符。
自增++自減--又稱為“增量運(yùn)算符”(increment operator)完成簡單的任務(wù),如++,即將其操作數(shù)的值增加1。這個(gè)運(yùn)算符以兩種方式出現(xiàn)。在第一種方式中,++出現(xiàn)在它作用的變量的前面,這是前綴(prefix)模式;在第二種方式中,++出現(xiàn)在它作用的變量的后面,這是后綴(postfix)模式。這兩種模式的區(qū)別在于值的增加這一動(dòng)作發(fā)生的準(zhǔn)確時(shí)間不同。對(duì)于前綴運(yùn)算符,先執(zhí)行自增或自減運(yùn)算,再計(jì)算表達(dá)式的值;而后綴運(yùn)算符,則先計(jì)算表達(dá)式的值,再執(zhí)行自增或自減運(yùn)算。自減--也是同樣的道理。
我們舉個(gè)例子來說明:
#include<stdio.h> int main() { int a,b; a=b=5; printf("%d %d\n",a--,--b); printf("%d %d\n",a--,--b); printf("%d %d\n",a--,--b); printf("%d %d\n",a--,--b); printf("%d %d\n",a--,--b); return 0; }
運(yùn)行結(jié)果如下:
5 4 4 3 3 2 2 1 1 0
這個(gè)程序5次將變量a和b減1,您可以通過這個(gè)結(jié)果來理解前綴和后綴的區(qū)別。
需要提醒一下的是,++與--是單目運(yùn)算符,即一個(gè)操作對(duì)象,而這個(gè)操作對(duì)象只能為變量,因?yàn)?,常量不可以被賦值。
運(yùn)算符 | 符號(hào) | 操作 | 用例 | 結(jié)果 |
加法 | + | 使它兩側(cè)的值加到一起 | 1+2 | 3 |
減法 | - | 從它前面的數(shù)減去后面的數(shù) | 5-3 | 2 |
乘法 | * | 將它前面的數(shù)乘以后面的數(shù) | 2*3 | 6 |
除法 | / | 用它左邊的值除以右邊的值 | 8/3 | 2(整數(shù)的除法會(huì)丟掉小數(shù)部分) |
取模 | % | 求用它左邊的值除以右邊的數(shù)后的余數(shù) | 5%3 | 2(%運(yùn)算符兩側(cè)的操作數(shù)必須為整數(shù)) |
看一個(gè)例子:
#include<stdio.h> int main() { int a=20; int b=5; int c=6; printf("a = %d b = %d c = %d\n",a,b,c); printf("a + b = %d\n",a+b); printf("a - c = %d\n",a-c); printf("a * b = %d\n",a*b); printf("a / c = %d\n",a/c); printf("a %% c = %d\n",a%c);/*兩個(gè)%才會(huì)輸出一個(gè)%*/ return 0; }
運(yùn)行結(jié)果為:
a = 20 b = 5 c = 6 a + b = 25 a - c = 14 a * b = 100 a / c = 3 a % c = 2
大家可以親自實(shí)驗(yàn)。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個(gè)爬蟲的Python編程課程
只會(huì)語法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程