Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19268596
  • 博文数量: 7460
  • 博客积分: 10434
  • 博客等级: 上将
  • 技术积分: 78178
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-02 22:54
文章分类

全部博文(7460)

文章存档

2011年(1)

2009年(669)

2008年(6790)

分类: C/C++

2008-03-20 18:38:14

来源: 作者:antigloss 等级:精品
发布于2006-02-04 15:14 被读2254次 【字体: 】

1. 乘法运算符(Multiplication Operator):*

    * 是乘法运算符。以下语句:

        meter = 100 * cm;

常量 100 和变量 cm 相乘,乘积被赋值给变量 meter。


2. 除法运算符(Division Operator):/

    C 使用 / 作为除法运算符。/ 左边的操作数除以右边的操作数。也就是说,/ 左边是被除数,右边是除数。例如:

        var = 6/2;

6 除以 2 得 3,然后 3 被赋值给变量 var。

    整数相除和浮点数相除有所不同。浮点数相除得到浮点数,整数相除得到整数。C 语言规定,整数相除产生的小数部分一律被抛弃,这就是所谓的截断truncation)。例如:7/4 的结果是 1,而不是 1.75,也不是 2。

    下面我们来看一个小程序。

        /* divide.c */
        #include <stdio.h>

        int main(void)
        {
            printf("integer division:  7/4   is %d \n", 7/4);
            printf("floating division: 7./4. is %f \n", 7./4.);
            printf("mixed division:    7./4  is %f \n", 7./4);

            return 0;
        }

输出为:

        integer division:  7/4   is 1
        floating division: 7./4. is 1.750000
        mixed division:    7./4  is 1.750000

最后一个 printf 中,我们用浮点数除以整数,得到的结果和第二个 printf 一样。这是因为 C 自动把这两个操作数的类型转换成了同一种类型。本例中,整数 4 被转换成了浮点类型,然后再和浮点数 7. 相除。

    C99 之前,正整数和负整数相除,如果产生小数部分,则相除的结果是不确定的。例如:7/-4 的结果可能是 -2,也可能是 -1。C99 规定,正整数和负整数相除,产生的小数部分一律被抛弃。也就是说,C99 中,7/-4 的结果是确定的,一定是 -1。

参考资料:C Primer 5th Edition
           C99 标准

本文版权归 以及 作者 antigloss 共同所有,转载请注明原作者和出处。谢谢。

阅读(1318) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~