算术操作符
1.+ - * /
2.除号两端如果都是整数,那么执行的是整数除法,得到的也是整数
#
include
<stdio.h>
int
main
()
{
float
x =
6
/
4
;
int
y =
6
/
4
;
printf
(
"%f\n"
, x);
//
输出
1.000000 //%f打印float浮点数,%lf打印double浮点数
printf
(
"%d\n"
, y);
//
输出
1
return
0
;
}
上⾯⽰例中,尽管变量
x
的类型是
float
(浮点数),但是
6 / 4
得到的结果是
1.0
,⽽不是
1.5
。原因就在于 C 语⾔⾥⾯的整数除法是整除,只会返回整数部分,丢弃⼩数部分。
如果希望得到浮点数的结果,两个运算数必须⾄少有⼀个浮点数,这时 C 语⾔就会进⾏浮点数除法。
#
include
<stdio.h>
int
main
()
{
float
x =
6.0
/
4
;
//
或者写成
6 / 4.0
printf
(
"%f\n"
, x);
//
输出
1.500000
return
0
;
}
上⾯⽰例中,
6.0 / 4
表⽰进⾏浮点数除法,得到的结果就是
1.5
。
再看⼀个例⼦:
#
include
<stdio.h>
int
main
()
{
int
score =
5
;
score = (score /
20
) *
100
;
return
0
;
}
上⾯的代码,你可能觉得经过运算,
score
会等于
25
,但是实际上
score
等于
0
。这是因为
score / 20
是整除,会得到⼀个整数值
0
,所以乘以
100
后得到的也是
0
。
#
include
<stdio.h>
int
main
()
{
int
score =
5
;
score = (score /
20.0
) *
100
;//输出25
return
0
;
}
3.求模运算符%
运算符
%
表⽰求模运算,即返回两个整数相除的余值。这个运算符只能⽤于整数,不能⽤于浮点数。
#
include
<stdio.h>
int
main
()
{
int
x =
6
%
4
;
// 2
return
0
;
}
负数求模的规则是,结果的正负号由第⼀个运算数的正负号决定。
#
include
<stdio.h>
int
main
()
{
printf
(
"%d\n"
,
11
%
-5
);
// 1
printf
(
"%d\n"
,
-11
%
-5
);
// -1
printf
(
"%d\n"
,
-11
%
5
);
// -1
return
0
;
}
赋值操作符
我们简单说一下复合赋值符:
1
+= -=
2 *= /=
3 >>= <<=
4 &= |= ^=
单目操作符:++ -- + -
1.++和--
++分为前置++和后置++两种,计算口诀:前置++先加1,后使用 ;后置++ 先使用,后加1;
--和++用法相同
2.这里的+和-表示正号和负号,都是单目操作符