C語言自學完備手冊(08)——常用運算子

自定義View系列教程00–推翻自己和過往,重學自定義View
自定義View系列教程01–常用工具介紹
自定義View系列教程02–onMeasure原始碼詳盡分析
自定義View系列教程03–onLayout原始碼詳盡分析
自定義View系列教程04–Draw原始碼分析及其實踐
自定義View系列教程05–示例分析
自定義View系列教程06–詳解View的Touch事件處理
自定義View系列教程07–詳解ViewGroup分發Touch事件
自定義View系列教程08–滑動衝突的產生及其處理


探索Android軟鍵盤的疑難雜症
深入探討Android非同步精髓Handler
詳解Android主流框架不可或缺的基石
站在原始碼的肩膀上全解Scroller工作機制


Android多解析度適配框架(1)— 核心基礎
Android多解析度適配框架(2)— 原理剖析
Android多解析度適配框架(3)— 使用指南


版權宣告


算數運算子

瞅瞅加減乘除和取模這些最基本運算子,程式碼如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int x;
int y;
puts("請輸入兩個正整數");
puts("請輸入第一個數:");
scanf("%d",&x);
puts("請輸入第二個數:");
scanf("%d",&y);
printf("x y=%d\n",x y);
printf("x-y=%d\n",x-y);
printf("x*y=%d\n",x*y);
printf("x/y=%d\n",x/y);
printf("x%%y=%d\n",x%y);
return 0;
}

執行結果如下:

這裡寫圖片描述

要點概述:

  • 這些基本運算子整體來說和其他程式語言無大的差別
  • 兩個正整數相除,結果亦為整數,即自動忽略小數部分,請參見程式碼第16行
  • 請注意取餘運算子,如果想在控制檯顯示%那麼請在程式碼中用%%表示;請參見程式碼第17行

小練習:輸入兩個正整數並顯示兩者的商與餘數

int a;
int b;
puts("請輸入兩個正整數");
puts("請輸入第一個數:");
scanf("%d",&a);
puts("請輸入第二個數:");
scanf("%d",&b);
printf("a除以b的商是%d餘數是%d\n",a/b,a%b);

在此例子中請注意最後的printf語句一共使用了兩次%d

賦值運算子

=用於實現賦值;比如:
int number;
number=5;

請注意: =的使用
例如:sum =a 它等價於sum=sum a;
其餘:-=和*=以及/=均類似,不再贅述。

相等與不等

==用於判斷兩個數是否相等
例如:a==b;假若a和b的值相等則結果為1(即true),假若a和b的值不等則結果為0(即false)
!=用於判斷兩個數是否不等
例如:a!=b;假若a和b的值不相等則結果為1(即true),假若a和b的值相等則結果為0(即false)

取模、取餘

%用於取模(取餘)

關係運算子

< 小於
> 大於
<= 小於等於
>= 大於等於

三目運算子

語法概述:a ? b : c
如果a不為0,則結果是b的值;否則結果為c的值

示例:計算兩個數的差值

#include <stdio.h>
#include <stdlib.h>
int main()
{
int number1,number2,result;
puts("請輸入兩個整數:");
printf("請輸入第一個整數:");
scanf("%d",&number1);
printf("請輸入第二個整數:");
scanf("%d",&number2);
result=number1>number2?number1-number2:number2-number1;
printf("兩個數的差值是%d",result);
return 0;
}

邏輯運算子

&& 表示邏輯與運算子
|| 表示邏輯或運算子

注意:&&和||的判斷過程中會進行短路求值,即根據左邊運算元的結果省略對右運算元的判斷。例如:a&&b 如果a和b都不為0則表示式的結果為1;假若a為0那麼就不會再對b進行判斷,這就是短路求值

自增與自減

i 表示自增
i – – 表示自減

請注意:
i 與 i的區別:
i 表示先賦值再自增
i表示先自增再賦值

i – – 和 – – i 與此類似,不再贅述