1. 整数与浮点实数运算时,其中的整数操作数在运算之前被自动转换为了浮点数;

  2. 求余运算限定参与运算的两个操作数必须为整型,不能对两个实型数据进行求余运算;

  3. ++x Prefix 运算符是在变量使用之前线对其执行加 1 操作;

  4. x++ Postfix 运算符是先使用变量的当前值,然后对其进行加 1 操作;

  5. 提倡在一行语句中一个变量最多只出现一次增 1 或减 1 运算;

  6. 宏常量没有数据类型(都是字符串):

    #define 标识符 字符串
  7. 表达式中的自动类型转换:在运算前将所有操作数都转换成取值范围较大的操作数类型;

  8. 赋值中的自动类型转换:将右侧表达式的值转换成左侧变量的类型;

  9. 类型自动转换机制给程序带来错误的隐患,在某些情况下有可能会发生数据信息丢失、类型溢出等错误;

  10. 如确实需要在不同类型数据之间运算时,应使用强制类型转换运算符

    (类型)表达式
  11. 强制类型转换运算符 (float)m 只是将 m强转为实型数据,并不能改变变量 m 的数据类型;

  12. 常用标准数学函数:

    #include <math.h>
    
    sqrt(x)   /*计算 x 的平方根,x 应大于或等于 0*/
    fabs(x)   /*计算 x 的绝对值*/
    log(x)    /*计算 lnx 的值,x 应大于 0*/
    log10(x)  /*计算 lgx 的值,x 应大于 0*/
    exp(x)    /*计算 e 的 x 次方的值*/
    pow(x,y)  /*计算 x 的 y 次方的值*/
    sin(x)    /*计算 sinx 的值,x 为弧度值,而非角度值*/
    cos(x)    /*计算 cosx 的值,x 为弧度值,而非角度值*/
  13. 例:从键盘输入获取边长 a、b、c,计算三角形面积:

    #include <stdio.h>
    #include <math.h>
    
    main() {
        float a, b, c, s, area;
    
        printf("Input num of a, b, c\n");
        scanf("%f, %f, %f", &a, &b, &c);
        s = (a + b + c) * 0.5;
        area = sqrt(s * (s - a) * (s - b) * (s - c));
        printf("Area: %f\n", area);
    }

Comments