算术运算符指南
目录
一、算术运算符概述
二、加法(+)和减法(-)运算符
三、乘法(*)运算符
四、除法(/)运算符
整数除法
浮点数除法
常见陷阱示例
五、取模(%)运算符
基本用法
负数取模规则
六、重要注意事项
一、算术运算符概述
C语言提供了一组基本的算术运算符用于数学计算,包括:
-
+
加法 -
-
减法 -
*
乘法 -
/
除法 -
%
取模(求余)
这些运算符都是双目运算符,需要两个操作数。注意:操作符(operator)和运算符(operator)是同义词,只是翻译不同。
二、加法(+)和减法(-)运算符
#include <stdio.h>int main()
{int x = 4 + 22; // 加法运算int y = 61 - 23; // 减法运算printf("%d\n", x); // 输出26printf("%d\n", y); // 输出38return 0;
}
三、乘法(*)运算符
#include <stdio.h>int main()
{int num = 5;printf("%d\n", num * num); // 输出25return 0;
}
四、除法(/)运算符
除法运算有整数除法和浮点数除法两种形式:
整数除法
当两个操作数都是整数时,执行整数除法(截断除法),结果会舍弃小数部分。
#include <stdio.h>int main()
{float x = 6 / 4; // 实际执行的是整数除法int y = 6 / 4; // 整数除法printf("%f\n", x); // 输出1.000000printf("%d\n", y); // 输出1return 0;
}
浮点数除法
至少有一个操作数是浮点数时,执行浮点数除法。
#include <stdio.h>int main()
{float x = 6.0f / 4; // 浮点数除法printf("%f\n", x); // 输出1.500000return 0;
}
常见陷阱示例
#include <stdio.h>int main()
{int score = 5;score = (score / 20) * 100; // 结果为0,因为5/20=0// 修正方案score = (score / 20.0) * 100; // 使用浮点数除法return 0;
}
你以为运算结果是25,但实际上score却等于0。这是因为score/20执行的是整数除法,结果会取整为0,再乘以100自然还是0。要得到预期结果,只需将除数20改为20.0,这样就会进行浮点数除法。
五、取模(%)运算符
取模运算符返回两个整数相除后的余数,只能用于整数运算。
基本用法
#include <stdio.h>int main()
{printf("%d\n", 6 % 4); // 输出2return 0;
}
负数取模规则
取模运算结果的正负号由第一个操作数决定:
#include <stdio.h>int main()
{printf("%d\n", 11 % -5); // 输出1printf("%d\n", -11 % -5); // 输出-1printf("%d\n", -11 % 5); // 输出-1return 0;
}
六、重要注意事项
-
整数除法会直接截断小数部分,不会四舍五入
-
除数为0会导致运行时错误
-
取模运算只能用于整数类型
-
混合类型运算时会自动进行类型转换
-
运算符优先级:
*
、/
、%
>+
、-