c 语法5 - 运算符和类型转换
一、算术运算符
运算符 | 描述 | 实例 |
---|---|---|
+ | 把两个操作数相加 | A + B 将得到 30 |
- | 从第一个操作数中减去第二个操作数 | A - B 将得到 -10 |
* | 把两个操作数相乘 | A * B 将得到 200 |
/ | 分子除以分母 | B / A 将得到 2 |
% | 取模运算符,整除后的余数 | B % A 将得到 0 |
++ | 自增运算符,整数值增加 1 | A++ 将得到 11 |
-- | 自减运算符,整数值减少 1 | A-- 将得到 9 |
1、加减乘除
和一般的加减乘除无区别,注意输出格式即可,无法除以0
除法运算后得到的结果给整型变量时候,取整数部分
#include
int main(void){
int a = 10;
int b = 20;
printf("a + b = %d\n",a+b);
printf("a - b = %d\n",a-b);
printf("a * b = %d\n",a*b);
printf("b / a = %d\n",b/a);
return 0;
}
2、取余
%就是取余数运算,也就是模运算(mod)。设a,b是两个整数,a%b的结果就就是a÷b得到的余数 例如5%3=2 (商1余2) 9%4=1 (商2余1) 3%7=3 (商0余3)
#include
int main(void){
int a = 10;
int b = 8;
printf("a = %d\n",a);
printf("b = %d\n",b);
printf("a %s b = %d\n","%",a%b);
return 0;
}
3、(++)与(- -)
++ 与- -是一对让算数运算方便的自增属性的算术式。
++是自增,分为前缀自增与后缀自增。而- -则是自减,也分为前缀自减与后缀自减。
但是都是等效于
i ++ / ++i ==》 i = i+1
独立式子中,没有区别,但是在与其他表达式结合的时候将发挥作用。
#include
int main(void){
int a = 10;
printf("a++\n");
printf("a = %d\n",a++);
printf("a = %d\n",a);
printf("++a\n");
printf("a = %d\n",++a);
printf("a = %d\n",a);
return 0;
}
明显可以看出,++a与a++的区别。
二、赋值运算符
赋值运算符代表了在运算结束之后,给予变量一个值。
这里仅展示非位运算的运算符
运算符 | 描述 | 实例 |
---|---|---|
= | 简单的赋值运算符,把右边操作数的值赋给左边操作数 | C=A+B将把A+B的值赋给C |
+= | 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 | C+=A相当于C=C+A |
-= | 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 | C-=A相当于C=C-A |
*= | 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 | C* =A相当于 C= C *A |
/= | 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 | C/=A相当于C=C/A |
%= | 求模且赋值运算符,求两个操作数的模赋值给左边操作数 | C %=A相当于C=C%A |
<<= | 左移且赋值运算符 | C<<=2等同于C=C<<2 |
>>= | 右移且赋值运算符 | C>>=2等同于C=C>>2 |
&= | 按位与且赋值运算符 | C&=2等同于C=C&2 |
^= | 按位异或且赋值运算符 | C^=2等同于C=C^2 |
|= | 按位或且斌值运算符 | C|=2等同于C=C|2 |
#include
int pf(int a,int c){
printf("a = %d,c = %d\n\n",a,c);
return 0;
}
int main(void){
int a = 21;
int c ;
printf("Line 1 : = 运算符实例");c = a;pf(a,c);
printf("Line 2 : += 运算符实例");c += a;pf(a,c);
printf("Line 3 : -= 运算符实例");c -= a;pf(a,c);
printf("Line 4 :*= 运算