[其它产品/技术] “=”和”==”的陷阱知识

[复制链接]
 楼主| AdaMaYun 发表于 2024-7-30 14:00 | 显示全部楼层 |阅读模式
针对不同的型号产品“=”和”==”一定要区分开

将比较运算符”==”误写成赋值运算符”=”,可能是绝大多数人都遇到过的,比如下面代码:

  1. if(x=5)
  2. {
  3.    //其它代码   
  4. }

代码的本意是比较变量x是否等于常量5,但是误将”==”写成了”=”,if语句恒为真。如果在逻辑判断表达式中出现赋值运算符,现在的大多数编译器会给出警告信息。比如keil MDK会给出警告提示:“warning: #187-D: use of "=" where"==" may have been intended”,但并非所有程序员都会注意到这类警告,因此有经验的程序员使用下面的代码来避免此类错误:

  1. if(5==x)
  2. {
  3.      //其它代码   
  4. }

将常量放在变量x的左边,即使程序员误将’==’写成了’=’,编译器会产生一个任谁也不能无视的语法错误信息:不可给常量赋值!

盗铃何须掩耳 发表于 2024-7-31 14:18 | 显示全部楼层
这种写法编译器会报错的
IFX-MudeLin 发表于 2024-8-1 11:00 | 显示全部楼层
编译器报Error还是报Warning,依赖配置的编译警告级别。
mmbs 发表于 2024-8-4 09:44 | 显示全部楼层
在编程中,“=”和“==”是两个常见但容易混淆的操作符,它们分别代表赋值和比较操作,理解它们的区别对于避免编程错误至关重要。
plsbackup 发表于 2024-8-4 10:37 | 显示全部楼层
在进行比较操作之前,确保两个操作数的类型相同。如果需要,进行类型转换。
cemaj 发表于 2024-8-4 11:18 | 显示全部楼层
“=”是赋值操作符,而“==”是相等性比较操作符。
usysm 发表于 2024-8-4 12:41 | 显示全部楼层
注意你使用的编程语言中关于类型转换的规则,必要时进行显式类型转换。
hearstnorman323 发表于 2024-8-4 15:40 | 显示全部楼层
在编程中,"="和"=="是两个非常常见的操作符,但它们的含义和用途是不同的。
zerorobert 发表于 2024-8-4 17:18 | 显示全部楼层
误用“=”代替“==”进行比较:这是一个典型的逻辑错误,尤其在条件判断中容易发生。例如,if (a = 5)实际上是将5赋给a,并且由于赋值表达式的值为5(非零),条件判断会被误判为真。
gouguoccc 发表于 2024-8-4 21:35 来自手机 | 显示全部楼层
一个赋值运算符,一个是条件判断运算符。
hilahope 发表于 2024-8-5 10:50 | 显示全部楼层
“==”用于比较操作,它检查两个操作数是否相等。如果相等,比较结果为真(true);如果不相等,结果为假(false)。
mattlincoln 发表于 2024-8-5 16:36 | 显示全部楼层
不同的编程语言和编译器/解释器可能对 “=” 和 “==” 的处理有所不同,因此理解特定语言中的行为是很重要的。
wengh2016 发表于 2024-8-5 18:27 | 显示全部楼层
= 和 == 是两个不同的操作符,它们具有不同的功能和用途。了解它们的区别对于避免潜在的陷阱非常重要。
chenqianqian 发表于 2024-8-5 20:52 来自手机 | 显示全部楼层
确实,有时候稍不注意就把两个字符搞混了。
kmzuaz 发表于 2024-8-5 21:12 | 显示全部楼层
可以有效避免“=”和“==”的常见陷阱,提高代码的准确性和可靠性。
vivilyly 发表于 2024-8-6 09:40 | 显示全部楼层
"=="是比较操作符,用于比较两个值是否相等。如果两边的值相等,那么表达式的结果为真(true),否则为假(false)。
cashrwood 发表于 2024-8-6 11:31 | 显示全部楼层
明确区分赋值和比较的场景,不要在需要比较的地方误用赋值操作符。
janewood 发表于 2024-8-6 13:09 | 显示全部楼层
使用 “=” 而不是 “==” 进行条件判断会导致错误。
jonas222 发表于 2024-8-6 15:36 | 显示全部楼层
“=”用于赋值操作,它将右侧表达式的值赋予左侧的变量。例如,a = 5;表示将数值5赋给变量a。
lzbf 发表于 2024-8-6 18:01 | 显示全部楼层
一些编程语言(如JavaScript)还提供了"==="操作符,这是严格比较操作符,它会同时比较两个值的类型和值。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

299

主题

2492

帖子

6

粉丝
快速回复 在线客服 返回列表 返回顶部