当前位置: 首页 > article >正文

C语言编程陷阱(五)

陷阱21:不要使用逗号运算符代替分号

  • C语言中,我们可以使用分号来结束一个语句,比如a = b;,这样可以让编译器知道语句的边界,以及执行的顺序。
  • 但是,如果我们想要在一个语句中执行多个表达式,就可以使用逗号运算符,比如a = (b = c, c + 1);,这样可以让编译器按照从左到右的顺序依次执行表达式,并且返回最右边的表达式的值。
  • 有时候,我们会错误地使用逗号运算符代替分号,比如用a = b, c = d;代替a = b; c = d;,这样会导致一些意想不到的结果,甚至引发错误。

错误的代码

#include <stdio.h>

int main()
{
    int a = 1, b = 2, c = 3, d = 4;
    a = b, c = d; //错误地使用逗号运算符代替分号
    printf("a = %d, b = %d, c = %d, d = %d\n", a, b, c, d);
    return 0;
}

为什么会出错呢?

  • 因为在C语言中,逗号运算符的优先级是最低的,所以上面的代码相当于:
#include <stdio.h>

int main()
{
    int a = 1, b = 2, c = 3, d = 4;
    a = (b, c = d); //注意这里的括号
    printf("a = %d, b = %d, c = %d, d

http://www.kler.cn/a/131788.html

相关文章:

  • go test 命令详解
  • 【OpenCV实现图像:OpenCV进行OCR字符分割】
  • 降低城市内涝风险,万宾科技内涝积水监测仪的作用
  • vim模式用法总结
  • 观察者模式的运用——消息队列
  • 类的生命周期
  • 【LeetCode】144. 二叉树的前序遍历
  • Redis篇---第二篇
  • 虚拟路由冗余协议_VRRP
  • 什么是人工通用智能(AGI)
  • 8.jib-maven-plugin构建springboot项目镜像,docker部署配置
  • 【SEC 学习】注册表添加启动脚本
  • 独立服务器应该怎么选择?
  • nodejs+vue面向中小学课堂教学辅助软件系统的设计与实现-微信小程序-安卓-python-PHP-计算机毕业设计
  • 【蓝桥杯省赛真题01】C++水下探测器 第十届蓝桥杯中小学生创意编程大赛C++编程比赛省赛真题解析
  • ts+vite报错:找不到模块“/src/.../...”或其相应的类型声明
  • 人工智能引领环境保护的新浪潮:技术应用及其影响
  • 操作系统 day11(进程调度时机、切换、调度方式、调度程序)
  • 1.rk3588的yolov5运行:pt_onnx_rknn转换及rknn在rk3588系统python运行
  • TCP中发送数据的情况