運算符是構建表達式的基本工具,C語言提供了?算術運算符、關系運算符、邏輯運算符
4.1 算術運算符
主要為二元運算符,包括 + - * / %
- 除了%運算符以外,其他二元運算符既允許操作數(shù)是整數(shù)也允許操作數(shù)是浮點數(shù)
- 對于/ 要特別注意,當兩個數(shù)位整數(shù)時,會丟掉分數(shù)部分
- 把0作為/或者%的右操作數(shù)會導致未定義的行為
運算符的優(yōu)先級和結合性
- 最高優(yōu)先級:* / % (+ - 一元運算符)
- 最低優(yōu)先級:(+ - 二元運算符)
- 如果運算符是從左向右結合的,該運算符稱為左結合的。二元算術運算符都是左結合
- 如果運算符是從右向左結合的,該運算符稱為右結合的。一元算術運算符都是右結合
4.2 賦值運算符
C語言中有=(簡單賦值)和復合賦值運算符
//在C語言中,賦值是運算符
int i; float f;
i = 72.99f; /*i is now 72*/
f = 136; /*f is now 136.0*/
4.2.1 左值
- 賦值運算符要求它的左操作數(shù)必須是左值。左值表示存儲在計算機內存中的對象,而不是常量或是計算的結果
12 = i; /* WRONG */
i + j = 0; /* WRONG */
-i = j; /* WRONG */
4.2.2 復合賦值
復合賦值運算符包括 += -= *= /= %=
- 復合賦值運算符是右結合的?i += j += k 等價于 i += (j += k)
4.3 自增運算符和自減運算符
C語言中允許使用++和- - 運算,既可以作為前綴運算符,也可以作為后綴運算符
//前綴運算符和后綴運算符的結果是不相同的
/*++i的前綴自增的結果是i+1,就是先增加,再表示*/
int i = 1;
printf("i is %d\n",++i); // 輸出結果 i=2
printf("i is %d\n",i); // 輸出結果 i=2
/*i++的后綴自增的結果是i,就是先表示,再自增*/
int i = 1;
printf("i is %d\n",++i); // 輸出結果 i=1
printf("i is %d\n",i); // 輸出結果 i=2
- TEST
/*用戶輸入一個三位數(shù),然后逆序打印出這個數(shù)字*/
#include <stdio.h>
int main(){
int a1,a2,a3;
printf("Enter a number: ");
scanf("%1d%1d%1d",&a1,&a2,&a3);
a1 += (a2 * 10 + a3 * 100);
printf("Ans: %d",a1);
}