C語言基本運算子
阿新 • • 發佈:2018-11-01
幾大基本運算子
- 賦值運算子
- 算術運算子
- 關係運算符
- 邏輯運算子
- 位運算子
賦值運算子
- 單等號=
計算順序:從左往右 - 例如:
double salary = 3200.0;
double total = salary *2;
char sex = ‘F’;
int score =98;
#include <stdio.h>
int main()
{
//複合運算子
int num = 8;
num %= 5;
printf("%d\n",num);
}
#include <stdio.h> int main() { //複合運算子 int x = 5; x += 10; //等價 x = x + 10; printf ("%d\n", x); x -= 10; //等價 x = x - 10; printf ("%d\n", x); x *= 10; //等價 x = x * 10; printf ("%d\n", x); x /= 10; //等價 x = x / 10; printf ("%d\n", x); x %= 10; //等價 x = x % 10; printf ("%d\n", x); return 0; }
算術運算子
- ** 一元運算子:++、–**
#include <stdio.h>
int main()
{
int num = 10;
num++; //num= num + 1;
num = num + 5; // num += 5; 等價寫法
printf ("%d\n ",num);
}
- 二元運算子:+、-、*、/、%
#include <stdio.h> int main() { //定義兩個整型變數 int num1 = 5, num2 =2; //4個double型變數用來存放計算結果 double result1,result2,result3,result4; result1 = num1 / num2; //除法 result2 = num1 % num2; //取模 result3 = num1++; //後置,num1先賦值給result3,後在進行自加1 result4 = --num2; //前置,num1先自減1,然後賦值給result4 printf ("num1 / num2 = %lf \n", result1); printf ("num1 %% num2 = %lf \n",result2); printf ("num1++ = %lf\n",result3); printf ("--num2 = %lf\n",result4); }
關係運算符
- 關係運算符:>、<、>=、<=、==、!=
#include <stdio.h>
int main()
{
printf("5 > 8嗎? %d\n",5 > 8);
printf("6 < 9嗎? %d\n",6 < 9); //C語言中,0表示假,1(非零)表示真
}
邏輯運算子
- &&(條件1 && 條件2):兩個條件同時為真時,結果為真
- || 條件1 || 條件2):兩個條件有一個為真時,結果為真
- !(!條件):條件為真時,結果為假;條件為假時,結果為真
位運算子
#include <stdio.h>
int main()
{
//算術運算子 + - * / %
//關係運算符 > < >= <= == !=
printf ("%d\n", 8 == 9);
printf("%d\n", 5 > 9 && 4 < 7) ;
//邏輯運算子 && || !
//賦值運算子 = += -= /= *=
int num = 10; // 10 > 11
int result = num++ > 11 && --num < 20; //短路運算, --num < 20是不會被執行的
//問題:result
printf("result = %d\t num= %d\n",result, num);
}
運算子的優先順序
- ()、 sizeof 、++、 –
- !
- 算術運算子
- 關係運算符
- &&
- ||
- 賦值運算子
int main()
{
printf("%d\n", !((18+45%3*5)>16)); // !18>16,!取反,
}
- 記憶技巧
1、單目運算子包括 !、~、++、–、sizeof,優先級別高
2、優先級別最低的是賦值運算子
3、可以通過()控制表示式的運算順序,()優先順序最高
4、從右向左結合性的只有賦值運算子、三目運算子和單目運算子
5、算術運算子 >關係運算符>邏輯運算子