1. 程式人生 > >C語言基本運算子

C語言基本運算子

幾大基本運算子

  • 賦值運算子
  • 算術運算子
  • 關係運算符
  • 邏輯運算子
  • 位運算子

賦值運算子

  • 單等號=
    計算順序:從左往右
  • 例如:
    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、算術運算子 >關係運算符>邏輯運算子