a + b * c)。int a = 5, b = 2;
printf("%d %d %d %d %d", a+b, a-b, a*b, a/b, a%b); // 7 3 10 2 1
// 整數相除捨去小數;% 僅適用整數,結果符號同被除數
混合型別運算自動向較高精度提升(int→double)。
=、+=、-=、*=、/=、%=a = b = c = 10 依序賦值。sum += i 等同 sum = sum + i。| 形式 | 效果 |
|---|---|
++i | 先增後用 |
i++ | 先用後增 |
優先序高於算術運算子。勿在同一表達式多次修改同一變數(未定義行為)。
> < >= <= == != → 結果 1(true)/0(false)。&&(短路與)、||(短路或)、!(非)。0 && func() 不呼叫 func();1 || func() 不呼叫 func()。max = (a > b) ? a : b;
// 巢狀可實現多重條件
grade = (score>=90)?'A':(score>=60)?'B':'C';
& | ^ ~ << >> 僅適用整數。x & (x-1) 清除最低位 1;x & -x 取得最低位 1。| 格式 | 說明 |
|---|---|
%d %i | 有號十進位 |
%u %o %x %X | 無號十/八/十六進位 |
%f %e %g | 浮點數:定點/科學/自動 |
%c %s | 字元/字串 |
%p | 指標位址 |
寬度/精度:%10d 右對齊寬 10;%-10d 左對齊;%.2f 兩位小數;%010d 前補 0。
char buf[100];
sprintf(buf, "color %c%c", '4', 'f'); // buf = "color 4f"
對應 printf 格式,需傳址(&var),遇空白/換行分隔。回傳成功轉換個數。