第五章:运算符、表达式和语句
1.基本运算符:C用运算符表示算数运算。
(1)赋值运算符:=
赋在C语言中=并不意味着“相等”,而是一个赋值运算符。
是把2023赋值给kfc。=左侧是变量名,右侧是赋给该变量的值。(不能读作kfc等于2023,要读成将2023赋给kfc.)赋值行为是从右到左进行。
(2)加法运算符:+
加法运算符用于加法运算,使“+”两侧的数字相加。
形式1.
printf("%d",4+6); 打印出数字24.
形式2.
int a=20;
int b=4;
printf("%d",a+b); 也打印出来数字24.
(3)减法运算符:-
减法运算符用于减法运算,使“-”左测的值减去右侧的值。
kfc=20-18; 将减去的值赋给kfc
★.+和-运算符都被称为二元运算符,这些运算需要两个运算对象才能正常操作。
(4)乘法运算符:*
符号*表示乘法。
下面是打印1-20的平方和立方的简单总结程序。
#include <stdio.h>
int main()
{
int a,num,nam ;
num = 0;
printf("normal square cube\n");
for (a = 1; a <= 20; a++)
{
num = a * a;
nam = a * a * a;
printf("%3d %7d %7d\n",a,num,nam);
}
return 0;
}
(5)除法运算符:/
在C中用符号“/”来表示除法。/左侧的值是被除数,右侧是除数。(整数除法结果是整数,若有小数部分则会丢弃被称为截断)
(6)运算符优先级
运算符 | 结合律 |
() | 从左往右 |
+ - | 从右往左 |
* / | 从左往右 |
+ - | 从左往右 |
= | 从右往左 |
2.其他运算符:
(1)求模运算符:%
求模运算符用于整数运算。求模运算符给出其左侧整数除以右侧整数的余数。(例如13%5读作“13求模5” 得出来3)
★.求模运算符只能用于整数,不能用于浮点数。
#include <stdio.h>
#define SEC_PER_MIN 60
int main(void)
{
int sec, min, left;
printf("Convert seconds to minutes and seconds!\n");
printf("Enter the number of seconds (<=0 to quit):\n");
scanf_s("%d", &sec);
while (sec > 0)
{
min = sec / SEC_PER_MIN;
left = sec % SEC_PER_MIN;
printf("%d seconds is %d minutes, %d seconds.\n", sec,
min, left);
printf("Enter next value (<=0 to quit):\n");
scanf_s("%d", &sec);
}
printf("Done!\n");
return 0;
}
(本人使用VS2022和其他编译软件可能有些不同)
(2)递增、递减运算符:++、--
递增运算符执行简单的任务,将其运算对象递增1,则递减相反。
方式1. ++在数字前面
例:++a 相当于a+1然后使用
方式2.++在数字后面
例:a++ 相当于在使用a 后再+1
递减“--”用法相同
3.表达式和语句
(1)表达式:有运算符和运算对象组成,最简单的表达式是一个单独的运算对象,以此位基础可以建立复杂的表达式:
4
-6
5+5
a*(b+c/z)
q>3
一些表达式由子表达式组成,例:c/z是上例a*(b+c/z)子表达式。
3.while循环
while循环内的花括号称为符合语句,也称为块。
4.强制类型转换运算符:
mice=1.6+1.7 (得出3.3)
mice=(int)1.6+(int)1.7 (得出3.3后,用int 转换为3)