C 語言的運算符包括算術運算符、關系運算符、邏輯運算符、位運算符、賦值運算符和其他運算符。
算術運算符
算術運算符
實例請看下面的實例,C 語言中所有可用的算術運算符:
#include <stdio.h>
int main()
{
int a = 21;
int b = 10;
int c ;
c = a b;
printf("Line 1 - c 的值是 %d\n", c );
c = a - b;
printf("Line 2 - c 的值是 %d\n", c );
c = a * b;
printf("Line 3 - c 的值是 %d\n", c );
c = a / b;
printf("Line 4 - c 的值是 %d\n", c );
c = a % b;
printf("Line 5 - c 的值是 %d\n", c );
c = a ; // 賦值後再加 1 ,c 為 21,a 為 22
printf("Line 6 - c 的值是 %d\n", c );
c = a--; // 賦值後再減 1 ,c 為 22 ,a 為 21
printf("Line 7 - c 的值是 %d\n", c );
}
當上面的代碼被編譯和執行時,它會産生下列結果:
Line 1 - c 的值是 31
Line 2 - c 的值是 11
Line 3 - c 的值是 210
Line 4 - c 的值是 2
Line 5 - c 的值是 1
Line 6 - c 的值是 21
Line 7 - c 的值是 22
上面的例子,大部分很好理解。我們來講講需要注意的地方與難以理解的地方。
需要注意的是 / 除号 與 % 取餘号
/ 除号說明
Eg:
int a1 = 100;
int b = 30;
double c = a1 / b;
實際上是 c=3.000000的。為什麼不是3.333333呢。因為/ 除号 兩邊的數值都是整型,所以得的值也是整型,這裡我們隻是用double類型去接收而已。怎麼能得出正确的3.33333這個值呢。隻要把除數或被除數任何一個改成double類型即可,因為/除号在運算時,會自動把兩邊的數據由低類型轉換為高類型。 double 類型比int 類型高
Eg :
int a1 = 100;
double b = 30;
double c = a1 / b;
這樣就得出c=3.333333
或
double a1 = 100;
int b = 30;
double c = a1 / b;
也能得出正确值 。在計算機的運算過程中,會把int b轉為double 類型,再計算。
如 int b=100.5,是不是程序也會把b 轉成double ,答案是不會。這種是我們強制把double賦值給int,計算機不會自動把高類型轉為低類型。
% 取餘号 說明
% 取餘号 要求 兩邊的數據類型為int 類型。注意 % 取餘号隻針對于整型進行運算。就是取餘數
double a1 = 100;
int b = 30;
int c = a1 % b;
這樣寫是錯誤的。編譯不過
++,-- 自增,自減符号的理解。
int a1 = 10;
int b = a;//b=11,a=11
int c = a ;//c=11,a=12
int d = ( a) ;//d=13,a=14
int e = c b;//e=22;c=12;
int f = b b;//f=24;b=12
其實很好理解。記住一句話 放前面自加1後再用。放後面用了後再自加1。
再來一個難。
int aa = 2;
int g = aa aa;//g=6;a=4
++在後面先用再自加1。aa=2參與計算(先用,就是用于計算),再aa自加1變成3;然後++aa,++在前面先自加1,aa變成了由3變成了4,再用(用于計算)。所以g=2+4=6;aa=4。
就這麼簡單。同理--也一樣。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!