返回介绍

2.3.1 算术运算符

发布于 2025-04-11 22:32:52 字数 1554 浏览 0 评论 0 收藏 0

算术运算符应该是我们最为熟悉的运算符,加、减、乘、除,从小学就认识它,不过 C 语言里还多了个取模运算符,用于求两个整数相除后所得的余数,因此也被叫作“求余运算符”。这 5 个算术运算符都是二目运算符,使用案例见表 2.9。

表 2.9 算术运算符

从表里可以看出,与我们从小所熟知的运算相比,有两点不同之处:①乘法运算符是一个星号“*”,而不是传统的“×”;除法运算符是一个斜杠“/”,而不是传统的“÷”。②“7 / 4”的结果是整数值“1”,而不是小数值“1.75”。这是因为 C 语言规定,进行算术运算时,在左右两个操作数中,将以较大的那个数据类型为标准进行运算,也就是会先把较小的那个数据类型转换成较大的数据类型,然后再进行运算。这种把小类型自动转为大类型的过程,我们把它称为“隐式类型转换”。C 语言的基本数据类型从小到大排列如下(在本书中 long 与 int 具有同等大小,所以没有列出 long):

char < unsigned char < short < unsigned short < int < unsigned < float <
long long < double < long double

在本例中,由于两个操作数都是整型的,不需要进行隐式类型转换,所以结果仍为整型。若是把其中的一个操作数变成 double 类型的,那么就会发生隐式类型转换,先把 int 类型转换为 double 类型,然后再进行运算。假若现在的式子为“7.0 / 4”,就需要先把整型的“4”转换成 double 类型的“4.0”,然后再运算,得出一个 double 类型的结果“1.75”;同理,若式子为“7 / 4.0”,就会把整型“7”转换为 double 类型的“7.0”,再运算并得出结果“1.75”。

下面再讲一下在使用算术运算符时的一些注意点。

小学数学老师告诉过我们:“先乘除、后加减”,这在 C 语言中仍然有效,也就是算术运算符中的乘法、除法以及取模运算符的优先级要比加法、减法的优先级高。

在除法运算中,除数不能为 0,否则就会得到一个错误的结果(例如得到一个表示无穷大或无穷小的值),并且容易使程序出现异常。

取模运算时两边的操作数都应是整型,并且只有左边操作数才会影响到结果的正负关系,即左操作数若为正值,则取模结果也为正值。反之,若左操作数为负值,取模结果也为负值。例如:“7 % –4”的结果仍为 3,但“–7 % 4”的结果为–3。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。