C語言講義——運算符(operator)


運算符(operator)

  • 算數運算符 7種
  • 關系運算符 6種
  • 邏輯運算符 3種
  • 位運算符 6種
  • 賦值運算符 11種
  • 共5類33種

算術運算符

  • 加 +
  • 減 -
  • 乘 *
  • 除 /
  • 取余 % (僅限於整數類型)
// numerator 被除數
// denominator 除數
// quotient 商
// remainder 余數
int n = 20, d=3;
int q = n / d;
int r = n % d;
printf("%d÷%d商為%d,余數%d",n,d,q,r);

應用:%2可以用於奇偶數的判斷:

int main(int argc, char** argv) {

	for(int i = 0; i<100; i++) {
		if(i%2 == 1) {
			printf("%d是奇數\n", i);
		} else {
			printf("%d是偶數\n", i);
		}
	}
	return 0;
}

自增運算符 ++

i++是先用i進行操作,再對i+1;
++i是先對i+1,再用i進行操作;

關系運算符

左值==右值:相等的時候,結果是整數1;不相等的時候,結果是整數0。

	int a = 1;
	printf("1 == a 結果:%d \n", 1 == a); // 相等
	printf("2 == a 結果:%d \n", 2 == a); // 不相等

注意:C語言中,比較“某變量是否等於某值”時,不要使用a == 1的形式,建議使用1 == a的形式。
因為a == 1很容易寫成a = 1,這是一個賦值語句(無論a之前等於多少,都會變成1),賦值會成功,返回結果永遠是整數1,即會被誤判為相等,同時改變了a的值。
而如果1 == a如果寫成1=a,不符合語法,編譯器會報錯。這樣可以避免代碼出錯而自己還不知道。

邏輯運算符

運算符 說明
&& AND 同真為真
|| OR 一榮俱榮
NOT

短路邏輯運算

以&&為例:
兩個操作數都為true時,結果才為true;
第一個為false時,結果就必為false,這時不會再判斷第二個操作。

int a = 1;
if ( (a < 0)  &&  (a++ < 1) )
{
    // Do Nothing
}

結果a沒有自增,還是1

位運算符

  • & 位與
  • | 位或
  • ^ 亦或

  • ~ 補碼取反
  • >> 右移
  • << 左移
    對於int a=3,擴大8倍最快的方法是a<<3,即左移3位,相當於乘以23,計算機做位移的操作要被乘除快得多,比加法都快。
擴大2倍 a<<1 縮小2倍 a>>1
擴大4倍 a<<2 縮小4倍 a>>2
擴大8倍 a<<3 縮小8倍 a>>3
擴大16倍 a<<4 縮小16倍 a>>4

賦值運算符

  • =
  • +=、-=、*=、/=、%=
  • &=、^=、|=、<<=、>>=


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM