C语言基础运算符

今天复习C语言的基础运算符时,以下是一些常见的运算符及其相关知识:

  1. 算术运算符

    • +:加法运算符,用于执行两个值的相加操作。
    • -:减法运算符,用于执行两个值的相减操作。
    • *:乘法运算符,用于执行两个值的相乘操作。
    • /:除法运算符,用于执行两个值的相除操作。
    • %:取模运算符,用于计算两个值相除的余数。
  2. 赋值运算符

    • =:赋值运算符,用于将右侧的值赋给左侧的变量。
  3. 比较运算符

    • ==:等于运算符,用于比较两个值是否相等。
    • !=:不等于运算符,用于比较两个值是否不相等。
    • >:大于运算符,用于比较左侧的值是否大于右侧的值。
    • <:小于运算符,用于比较左侧的值是否小于右侧的值。
    • >=:大于等于运算符,用于比较左侧的值是否大于或等于右侧的值。
    • <=:小于等于运算符,用于比较左侧的值是否小于或等于右侧的值。
  4. 逻辑运算符

    • &&:逻辑与运算符,用于检查两个条件是否同时满足。
    • ||:逻辑或运算符,用于检查两个条件是否至少有一个满足。
    • !:逻辑非运算符,用于取反一个条件的值。
  5. 递增和递减运算符

    • ++:递增运算符,用于将变量的值增加1。
    • --:递减运算符,用于将变量的值减少1。
  6. 位运算符

    • &:按位与运算符,用于对两个操作数执行按位与操作。
    • |:按位或运算符,用于对两个操作数执行按位或操作。
    • ^:按位异或运算符,用于对两个操作数执行按位异或操作。
    • <<:左移运算符,用于将一个数的二进制位向左移动指定的位数。
    • >>:右移运算符,用于将一个数的二进制位向右移动指定的位数。
      在使用不同数据类型进行计算时,确实有一些注意事项。下面是一些常见的注意事项以及相应的示例代码来说明原因:

注意事项

  1. 整数相除得到整数
    当整数和浮点数进行相除运算时,结果会被截断为整数。这是因为整数除以整数的结果将永远是整数,即使结果本应是一个小数。

    int a = 10;
    int b = 3;
    int result = a / b;
    printf("%d\n", result);  // 输出结果为 3
    
  2. 取模运算只适用于整数
    取模运算(%)只适用于整数类型的操作数。它计算两个数相除后的余数。如果操作数是浮点数,编译器将会报错。

    int a = 10;
    int b = 3;
    int result = a % b;
    printf("%d\n", result);  // 输出结果为 1
    
  3. 混合数据类型的隐式类型转换
    当不同数据类型的操作数进行运算时,C语言会进行隐式类型转换以匹配操作数的类型。在某些情况下,转换可能会导致精度丢失或结果产生意外的行为。

    int a = 10;
    double b = 3.5;
    double result = a / b;
    printf("%lf\n", result);  // 输出结果为 2.857143
    

    在上述代码中,我们将 ab 分别赋值为整数和浮点数。当我们将它们相除并将结果赋给一个双精度浮点类型的变量 result 时,C语言会进行隐式类型转换,将 a 转换为浮点数。这样,我们得到了预期的带小数的结果。

  4. 运算优先级

int result = 5 + 3 * 2;
printf("%d\n", result);  // 输出结果为 11

在C语言中,运算符的优先级决定了表达式中运算符被执行的顺序。
下面是常见运算符的优先级顺序,从高到低:

  1. 括号(),括号内的表达式优先计算。
  2. 单目加(正号)和单目减(负号)+-,正号和负号。
  3. 乘法、除法和取模*/%,乘法、除法和取模运算。
  4. 加法和减法+-,加法和减法运算。
  5. 移位运算<<>>,左移和右移运算。
  6. 关系运算符<<=>>=,关系比较运算符。
  7. 相等运算符==!=,等于和不等于运算符。
  8. 按位与运算&,按位与运算。
  9. 按位异或运算^,按位异或运算。
  10. 按位或运算|,按位或运算。
  11. 逻辑与运算&&,逻辑与运算。
  12. 逻辑或运算||,逻辑或运算。
  13. 条件运算符? :,条件表达式。
  14. 赋值运算符=, +=, -= 等,赋值运算符。
  15. 逗号运算符,,逗号运算符。

在表达式中,具有更高优先级的运算符会首先执行,然后才是具有较低优先级的运算符。如果有相同优先级的运算符,则根据结合性来决定执行顺序。例如,大多数运算符都是从左向右结合的,除了赋值运算符和条件运算符等特殊情况。

  • 17
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
C语言运算符优先级是根据其不同的运算符来确定的。同一优先级的运算符,运算次序由结合方向所决定。一般来说,优先级从高到低排列如下:逻辑非(!) > 算术运算符 > 关系运算符 > 逻辑与(&&) > 逻辑或(||) > 赋值运算符。这意味着在表达式中,拥有更高优先级的运算符会先进行计算,然后再计算优先级较低的运算符。这样可以确保表达式按照正确的顺序进行计算。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [C语言运算符优先级.pdf](https://download.csdn.net/download/helloepl/12015321)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [【C语言基础】-运算符](https://blog.csdn.net/weixin_44247448/article/details/124077281)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [嵌入式系统的C语言项目代码示例,使用基本的GPIO控制和定时器功能](https://download.csdn.net/download/weixin_44609920/88223543)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琪琪的小白先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值