简介:
1.算术运算符
2. 关系运算符
3. 逻辑运算符
4. 三目运算符
5. Scanf函数
1.算术运算符
算术运算是指
+
、
-
、
*
、
/、 %
的运算
(1)除法:两个整数相除,商为整数,小数部分会被舍弃
(2)求余:参与运算的两数必须为整型,第二个数不能为0,结果的
符号由第一个数决定
10 % 4 = 2;
-10 % 4 = -2;
10 % -4 = 2;
(3)
赋值运算
注意:赋值语句的左边一定是变量
(4)扩展赋值运算符
a += b; //---->
相当于
a = a + b
a -= b; //---->
相当于
a = a - b
a *= b; //---->
相当于
a = a * b
a /= b; //---->
相当于
a = a / b
a %= b; //---->
相当于
a = a % b
前者效率更高,因为
+
=是一个运算符,这里只做了一步运算,后面的运算是先加再赋值,做了两步运算
(5)自增自减运算符
++
在自身的基础上
+1
--
在自身的基础上
-1
// 在单独使用的时候
使用前自增
/
自减运算符和使用后自增
/
自减运算符是一样的效果
//如果说跟其他运算符放在一起时,有区别:
result = --value2; //
先自减,在赋值
result = value2--; //
先赋值,
再自减
int d = 30,e = 0;
e = d++ * 3; // 由于是后自增运算,因此先把 d 作为 * 的左值,然后再自增
printf("d is %d,e is %d\n", d, e);
int m = 5,n = 4,j = 0;
j = m +++ n; // 前两个 ++ 是 m 的自加运算符,后一个 + 是算术运算符
e = d++ * 3; // 由于是后自增运算,因此先把 d 作为 * 的左值,然后再自增
printf("d is %d,e is %d\n", d, e);
int m = 5,n = 4,j = 0;
j = m +++ n; // 前两个 ++ 是 m 的自加运算符,后一个 + 是算术运算符
printf("m is %d,n is %d,j is %d\n", m, n, j);
2. 关系运算符
<, >, <=, >= , ==, !=,
前四个优先级高于后两个
//
对于表达式而言
//
优先级 和 结合性
// 如果优先级不同,运算先看符号的优先级
// 如果优先级不同,运算先看符号的优先级
//
优先级相同,在看结合性
3. 逻辑运算符
(1) &&
两个表达式必须为真,结果才为真
(2) || 两个表达式只要有一个为真,结果就为真
(2) || 两个表达式只要有一个为真,结果就为真
(3) ! 取反(取非)
eg:
int a = 3;
int result = a < 5 && a++; //————>a = 4; result = 1;
result = a > 5 && a++; //————>a = 3; result = 0;
result = a < 5 || a++; //————>a = 3; result = 1;
4. 三目运算符
// 格式: (表达式1)? (表达式2):(表达式3)
int a = 300, b = 0;
b = (a-- < 300)? 10 : a++;//a = 300, b = 299
printf("a is %d,b is %d\n", a, b);
int a = 10, b = 1;
int result = (a = b--) ? a++ : ++b;//a = 2, b = 0, r = 1
printf("a = %d, b = %d, result = %d\n", a, b, result);
b = (a-- < 300)? 10 : a++;//a = 300, b = 299
printf("a is %d,b is %d\n", a, b);
int a = 10, b = 1;
int result = (a = b--) ? a++ : ++b;//a = 2, b = 0, r = 1
printf("a = %d, b = %d, result = %d\n", a, b, result);
5. Scanf函数
// 用于接收键盘上的输入
// 注意:scanf函数不能输出打印的字符串
int main( ){
printf (“ 请输入你的年龄:”);
int age;
scanf (“%d”, &age);
printf (“ \n 你的年龄是:%d”, age);
}