赋值运算符的错误使用举例

2023-11-18

=和==运算符的错误使用

  • =运算符在C语言中为赋值运算符,==运算符为检查符号两边的值是否是相等的操作。
  • 当某些程序的本意是比较运算符的时候,可能会无疑写成了赋值运算符,比如下面的程序,本意是要检查x是否等于y,但是实际上是把y的值的赋值给了x,然后去检查y的值是否为0
if(x==y)
	break;
  • 再看下面的这个例子,例子中的循环语句本意是跳过文件中的空格符,制表符和换行号
while(c=' '||c=='\t'||c=='\n')
    g=getc(f);
  • 由于在比较字符’ '和变量c时,错误的将比较运算符==写成了赋值运算符=,因为赋值运算符的优先级要低于逻辑运算符||,所以上面代码的实既含义时将下列的表达式赋值给了c
' '||c=='\t'||c=='\n'
  • 因为’ '不等于0(ANCII码值为32),那么无论变量c之前的值到底是多少,上述表达式的结果永远都是1,因此,循环会一直进行下去,指导整个文件结束,文件结束之后循环是否还会继续执行,这取决于getc库函数的具体实现,在文件指针到达文件节为之后是否还允许继续读取字符,如果允许继续读取字符,那么循环就会一直进行,从而就会形成一个死循环。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

赋值运算符的错误使用举例 的相关文章

随机推荐

  • 微信小程序 web-view 访问外部链接

  • mysql(8.0.27)本地启动没有问题,远程无法连接解决方案+开启远程连接+问题排查路径

    目录标题 mysql安装 现象 错误排查 mysql安装 mysql8 0 27 免安装教程连接 安装教程连接 现象 1 mysql本地启动正常 C Users youc gt mysql u root p Enter password W
  • NC22 合并两个有序的数组 - java语言实现

    文章目录 1 题目描述 2 题目解读 3 思路 4 代码实现 总结 学习的道路很枯燥 希望我们能并肩走下来 编程真是一件很奇妙的东西 你只是浅尝辄止 那么只会觉得枯燥乏味 像对待任务似的应付它 但你如果深入探索 就会发现其中的奇妙 了解许多
  • Visual Studio 性能探查器使用技巧,看这篇就足够了

    Visual Studio 提供了性能测量值和分析工具选择 某些工具 如 CPU 使用情况 和 内存使用情况 可以在带或不带调试器的情况下运行 也可以在发布版本或调试版本配置上运行 应用程序时间线 等 性能探查器 工具可以在发布版本或调试版
  • YUM安装软件包(联网+断网两种)

    Yum 全称为 Yellow dog Updater Modified 是一个在Fedora和红帽 RedHat 以及CentOS中的Shell前端软件包管理器 基于RPM包管理 能够从指定的服务器自动下载RPM包并且安装 可以自动处理依赖
  • MySQL与常见面试题

    目录 事务 概述 ACID AUTOCOMMIT 总结 并发一致性问题 丢失修改 读脏数据 不可重复读 幻读 原因和解决方法 隔离级别 未提交读 READ UNCOMMITTED 提交读 READ COMMITTED 可重复读 REPEAT
  • 端口查看(非原创)

    端口查看 非原创 1 Netstat命令用法 命令格式 Netstat a e n o s an a 表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口 e 表示显示以太网发送和接收的字节数 数据包数等 n 表示只以数字形式显示
  • c# .net mvc的IHttpHandler奇妙之旅。.net的生命周期和管道你听说过吗?你可以利用他处理业务如:跳转业务页面,文件请求的安全过滤,等等,还有许多神秘业务等着你去发现

    源码下载 c net mvc图片文件请求安全过滤 图片防盗链 https download csdn net download cplvfx 88206428 c net mvc的IHttpHandler奇妙之旅 net的生命周期和管道你听
  • TensorRT部署YOLOv5(02)-环境介绍

    本文对TensorRT部署YOLOv5模型的整体环境配置及软件包进行介绍 实验环境主要从主机和JestonNano两方面进行介绍 在主机端完成模型训练并转换为onnx中间模型表示 在JestonNano进行onnx模型转换为TensorRT
  • cocos2dx 3.0 新建工程

    打开终端 转到cocos2d 3 0的这个目录下tools cocos2d console bin cocos py cocos py 运行命令 会显示该命令的帮助 根据帮助提示进行操作 有以下几个命令可用 compile Compiles
  • 游戏开发unity编译和调试系列:Unsafe code may only appear if compiling with /unsafe

    问题 Unsafe code may only appear if compiling with unsafe Enable Allow unsafe code in Player Settings to fix this error 解决
  • MySQL中的锁机制和MVCC

    MySQL中的锁和MVCC 概述 InnoDB的MVCC MVCC锁相关 SQL语句的加锁分析 RR隔离级别是如何解决幻读的 死锁 模拟死锁 在学习MySQL中的锁机制相关时搜集了几篇写得非常不错的博客 这里就不再花时间详细介绍 本篇仅做总
  • 批量异步更新策略及 nextTick 原理?

    在Vue中 当需要对多个响应式数据进行异步更新时 可以使用 批量异步更新策略 Vue在更新组件状态时 会将所有的异步更新合并成一个批量更新 从而避免不必要的重复渲染和提高性能 Vue中的异步更新策略是基于 事件循环 Event Loop 的
  • numpy 索引和切片

    目录 1 索引元素 2 切片 省略参数写法 3 应用举例 4 多维数组 二维数组获取一行 二维数组获取一列 5 多维数组的切片 如果要获取 第一行的第四和第五个元素 如果得到数组的最后两行和最后两列 如果得到数组的第三列 如果取出第3 5行
  • (局部特征)HOG+SVM,LBP,Haar

    在利用多幅二维图像进行三维重建 恢复场景三维结构的应用中 其基本出发点是要有一个可靠的图像对应点集合 而自动地建立图像之间 点与点之间的可靠对应关系通常都依赖于一个优秀的局部图像特征描述子 在物体识别中 目前非常流行以及切实可行的方法之一是
  • 记录QT4键盘无法置顶问题

    键盘类设置 QWidget setWindowFlags windowFlags Qt WindowStaysOnTopHint Qt FramelessWindowHint Qt X11BypassWindowManagerHint 莫名
  • bash脚本,自动输入sudo的密码

    解决方法 echo 管道 开始使用 echo admin sudo service tomcat7 stop 始终提示输入密码 后来查看了下sudo命令的使用 man sudo 发现有如下的解释 S The S stdin option c
  • go并发模型GPM

    线程模型的三种实现方式 用户级线程 M 1对应关系 多个用户态线程对应着一个内核线程 用户态线程的创建 终止 切换 同步等线程工作必须由自身来完成 内核级线程 1 1对应关系 直接调用操作系统的内核线程 所有线程的创建 终止 切换 同步等操
  • mysql数据库丢库记

    2021 1 29 记 环境 Windows10 mysql5 6 Navicat12 原因 电脑突然关机 启动后通过Navicat连接发现少了一个库 让人无比迷茫 为啥会出现丢库现象 解决方案 无比庆幸的是在几个小时之前 我对丢失的库做过
  • 赋值运算符的错误使用举例

    和 运算符的错误使用 运算符在C语言中为赋值运算符 运算符为检查符号两边的值是否是相等的操作 当某些程序的本意是比较运算符的时候 可能会无疑写成了赋值运算符 比如下面的程序 本意是要检查x是否等于y 但是实际上是把y的值的赋值给了x 然后去