回首页 回首页 ◎ 设为首页  
◎ 收藏本站  
◎ 给我留言  
  
  首 页  C/C++教程  C++之父的FAQ  C/C++动向  C/C++源代码  C/C++误区  Unix/Linux  下载中心  乱七八糟  蚂蚁的Blog  
  当前位置:首 页 >> C/C++教程 >> C 语言基础教程 >> 23. 乘法运算符和除法运算符
最 近 更 新
54. goto 语句
53. switch 语句推荐
52. continue 和 break
51. 条件运算符(?:)
50. if 语句嵌套推荐
49. 逻辑运算符推荐
48. 在循环中使用 if 语句推荐
47. if 和 else 连用推荐
46. if 语句
45. 循环应用实例 2
最 新 推 荐
53. switch 语句推荐
50. if 语句嵌套推荐
49. 逻辑运算符推荐
48. 在循环中使用 if 语句推荐
47. if 和 else 连用推荐
44. 循环应用实例 1推荐
43. 循环嵌套推荐
40. for 循环推荐
37. 关系运算符推荐
36. while 循环推荐
热 门 排 行
2. 第一个 C 程序推荐
31. 预处理指令 #define..推荐
1. C 语言简介
11. 基本数据类型:整型..推荐
24. 运算符的优先级和结..推荐
5. 如何编写函数
30. 字符串字面量推荐
13. 标识符命名规则
36. while 循环推荐
7. 第三个 C 程序推荐
站 内 搜 索

Web stdcpp.cn
关键词

搜索方式

搜索范围

精确匹配
广 告

23. 乘法运算符和除法运算符


来源:蚂蚁的 C/C++ 标准编程 作者:antigloss 等级:精品
发布于2006-02-04 15:14 被读2433次 【字体:

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 标准

本文版权归 蚂蚁的 C/C++ 标准编程 以及 作者 antigloss 共同所有,转载请注明原作者和出处。谢谢。



相关专题:C 语言运算符
巧用异或交换整型变量的值
51. 条件运算符(?:)

上一篇:22. + 运算符和 – 运算符
下一篇:24. 运算符的优先级和结合律

共有评论 3 条 网友评分 3分 查看全部评论

游客:sun9moon
评分:3
7.0/4 %d输出结果为什么是0呢?
游客:antigloss
评分:0
7.0 / 4 的结果是浮点数,而 %d 指明 printf 按照整型来处理这个浮点数,由于浮点数和整型在计算机中的表示形式不一样,错误的处理方式会导致错误的输出,可能是零,也可能是别的结果。使用 %f 就可以看到正确的输出。
游客:sun9moon
评分:0
谢谢指教!

查看全部评论

【发表评论】 评分:1分 2分 3分 4分 5分


验证码:

Powered By Www.Xydw.COM Ver1.14 管理
Copyright © 2005-2006 蚂蚁的 C/C++ 标准编程 All Right Reserved. XCMS
粤ICP备06014124号   站长:Antigloss