zoukankan      html  css  js  c++  java
  • C连载25-求模、类型转换、递增递减、表达式

    一、求模运算特殊点

    • 如果包含负数计算机会如何计算
    • 被除数为负数,那么余数就是负数;被除数为正数那么余数就是正数
    • 举例:
    • 11%5=1 ; 11%(-5)=1 ; -11%5=-1 ; -11%(-5)=-1

    无论何种情况都可以转化为a%b = a-(a/b)*b

    二、递增、递减运算符

    • 和Java一样,没什么可说的。
    • 优先级:只有圆括号优先级比它高;
    • (x+y)++这是无效的表达,自增自减运算符只能对一个变量起到作用。
    • 原则:(1)如果一个变量出现了一个函数的多个参数中,不要对该变量使用递增递减运算符;如:printf("%d %d",num,num++),可能会出现意想不到的问题;(2)如果一个变量多次出现在一个表达式中,不要对该变量使用递增或递减运算;如:ans = num + num*num++

    三、表达式

    • 声明不是语句(C语言中),C语言中允许空语句;

    四、类型转换

    • 当类型转换出现在表达式中,无论是unsigned还是signed的char和short都会自动转换为Int,如果就有必要还会被转换为unsigned int(如果short与int大小相同,unsigned int就比int大,unsigned short就会被转换为unsigned int)。float不会被转换为double
    • 小转换到大,称为升级
    • 涉及两种类型的运算,两个值会分别转换为两种类型更高级别
    • 类型的级别从低到高:int unsigned int long unsigned long long long unsigned long long float double long double
    • 在计算过程中,最后的结果会被转换为被赋值变量的类型,这个过程有升级有降级
    • 当作为函数参数传递的时候,char和short被转换为int,float被转换为double.函数原型会覆盖自动升级

    五、源码:

  • 相关阅读:
    【转载】大连商品交易所-套利交易相关问题
    LC 1340. Jump Game V
    1057 Stack
    1059 Prime Factors
    LC 1425. Constrained Subset Sum
    LCP 13. 寻宝
    P3381 【模板】最小费用最大流
    P3376 【模板】网络最大流
    LC 面试题51. 数组中的逆序对
    LC 466. Count The Repetitions
  • 原文地址:https://www.cnblogs.com/ruigege0000/p/13733249.html
Copyright © 2011-2022 走看看