C 語言中的算數(shù)運算符
上一個小節(jié)我們對 C 語言的運算符有了一個基本的了解,這節(jié)課我們來詳細(xì)的看下運算符中的算術(shù)運算符:
1. 算數(shù)運算符
算數(shù)運算符是用來進(jìn)行算數(shù)運算的符號,主要包含以下幾個符號:
運算符 | 作用 | 示例 |
---|---|---|
= | 賦值 | a=1 |
+ | 加法或者正號 | a+b, +a |
- | 減法或者負(fù)號 | a-b, -a |
* | 乘法 | a*b |
/ | 除法 | a/b |
% | 取余數(shù) | a%b |
++ | 自加 | ++a, a++ |
– | 自減 | –a, a– |
2. 實例
下面我們通過實際的程序來看看這些算數(shù)運算符是怎么應(yīng)用的。
#include <stdio.h>
int main()
{
int a,b,c,e,f,g;
float d,h,i,j,k;
a=1;
b=2;
c=0;
f=4;
g=3;
h=1;
i=2;
j=4;
k=3;
printf("a=%d, b=%d, c=%d, f=%d, g=%d\n",a,b,c,f,g);
c=a+b;
printf("a+b=%d\n",c);
c=a-b;
printf("a-b=%d\n",c);
c=a*b;
printf("a*b=%d\n",c);
c=a/b;
d=h/i;
printf("a/b=%d, int\n",c);
printf("h/i=%f, float\n",d);
c=f/g;
d=j/k;
printf("f/g=%d, int\n",c);
printf("j/k=%f, float\n",d);
c=a%b;
printf("a%%b=%d\n",c);
c=b%a;
printf("b%%a=%d\n",c);
e=10;
c=++e;
printf("c=++e,c=%d, e=%d\n",c,e);
e=10;
c=e++;
printf("c=e++,c=%d, e=%d\n",c,e);
e=10;
c=--e;
printf("c=--e,c=%d, e=%d\n",c,e);
e=10;
c=e--;
printf("c=e--,c=%d, e=%d\n",c,e);
return 0;
}
顯示結(jié)果:
a=1, b=2, c=0, f=4, g=3
a+b=3
a-b=-1
a*b=2
a/b=0, int
h/i=0.500000, float
f/g=1, int
j/k=1.333333, float
a%b=1
b%a=0
c=++e,c=11, e=11
c=e++,c=10, e=11
c=--e,c=9, e=9
c=e--,c=10, e=9
可以看到,在 C 語言中對于加法,減法和乘法,與我們平時算數(shù)中所見的結(jié)果是一致的。
除法就要分兩種情況來討論了。從上面的例子可以看出,當(dāng)除數(shù)和被除數(shù)都是整數(shù)的時候,他們的結(jié)果會是整數(shù)。這時的結(jié)果就是兩者相除的結(jié)果的數(shù)字的整數(shù)部分。
在例子中,1/2=0, 4/3=1
,因為 1/2 = 0.5
所以整數(shù)部分就是 0 , 4/3 ≈ 1.33333
,所以整數(shù)部分就是 1 。而在除法中,如果被除數(shù)或者除數(shù)兩者其中有一個是浮點數(shù),那么這時顯示的結(jié)果就與我們在普通算數(shù)中得到的結(jié)果就一致了。但是有一點就是計算機(jī)不會顯示循環(huán)小數(shù),就是不能用符號表示無限小數(shù)位,所以,只能在顯示的精度范圍內(nèi)截取。所以這里我們看到的就是 1.333333 。
模除或者叫做取余的操作就是獲取不能被整數(shù)的剩余的整數(shù)部分。這個和數(shù)學(xué)中的規(guī)定是一致的。
++
和 --
分別叫做自加和自減。其本身的作用都是將自己本身數(shù)值加一或者減一。這是一個只需要一個變量就可以完成的運算,因此大家有時候也叫這種運算為一元運算。
從示例程序中可以看出,這兩種運算符的擺放位置是有兩種的,也就是可以放在變量前,也可以放在變量后。
如果只是單獨執(zhí)行自加和自減,而沒有同時有賦值的情況發(fā)生,那么自加和自減的符號放在前后都是沒有差異的,大家可以從變量的顯示出來的數(shù)值看出其都是發(fā)生了加一或者減一的變化的。
但是,重點是:當(dāng)我們配合賦值語句使用的時候,這兩種位置,前置與后置,就會產(chǎn)生不同的賦值效果。當(dāng)自加與自減前置的時候,賦值語句獲得的是自加或者自減完成后的數(shù)值;當(dāng)自加與自減后置的時候,賦值語句獲得的是自加或者自減之前的原始數(shù)值。這點一定要特別小心,以免引起錯誤。
3. 小結(jié)
算數(shù)運算符作為基本的運算符,承擔(dān)著進(jìn)行數(shù)值計算的基本功能。這里需要特別注意的有以下幾點:
- 除法運算符在變量類型不同的時候會產(chǎn)生不同的結(jié)果,我們會經(jīng)常利用這些特性。
- 自加或者自減操作的前置與后置不會影響自身的數(shù)值變化,但是會影響賦值過程。如果疏忽,會引起錯誤。
- 其他的算數(shù)運算符,與我們在算數(shù)中所了解的算數(shù)運算符一致。