打印
[其它产品/技术]

“=”和”==”的陷阱知识

[复制链接]
1418|45
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
AdaMaYun|  楼主 | 2024-7-30 14:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
针对不同的型号产品“=”和”==”一定要区分开

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

if(x=5)
{
   //其它代码   
}

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

 if(5==x)
{
     //其它代码   
}

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

使用特权

评论回复
沙发
盗铃何须掩耳| | 2024-7-31 14:18 | 只看该作者
这种写法编译器会报错的

使用特权

评论回复
板凳
IFX-MudeLin| | 2024-8-1 11:00 | 只看该作者
编译器报Error还是报Warning,依赖配置的编译警告级别。

使用特权

评论回复
地板
mmbs| | 2024-8-4 09:44 | 只看该作者
在编程中,“=”和“==”是两个常见但容易混淆的操作符,它们分别代表赋值和比较操作,理解它们的区别对于避免编程错误至关重要。

使用特权

评论回复
5
plsbackup| | 2024-8-4 10:37 | 只看该作者
在进行比较操作之前,确保两个操作数的类型相同。如果需要,进行类型转换。

使用特权

评论回复
6
cemaj| | 2024-8-4 11:18 | 只看该作者
“=”是赋值操作符,而“==”是相等性比较操作符。

使用特权

评论回复
7
usysm| | 2024-8-4 12:41 | 只看该作者
注意你使用的编程语言中关于类型转换的规则,必要时进行显式类型转换。

使用特权

评论回复
8
hearstnorman323| | 2024-8-4 15:40 | 只看该作者
在编程中,"="和"=="是两个非常常见的操作符,但它们的含义和用途是不同的。

使用特权

评论回复
9
zerorobert| | 2024-8-4 17:18 | 只看该作者
误用“=”代替“==”进行比较:这是一个典型的逻辑错误,尤其在条件判断中容易发生。例如,if (a = 5)实际上是将5赋给a,并且由于赋值表达式的值为5(非零),条件判断会被误判为真。

使用特权

评论回复
10
gouguoccc| | 2024-8-4 21:35 | 只看该作者
一个赋值运算符,一个是条件判断运算符。

使用特权

评论回复
11
hilahope| | 2024-8-5 10:50 | 只看该作者
“==”用于比较操作,它检查两个操作数是否相等。如果相等,比较结果为真(true);如果不相等,结果为假(false)。

使用特权

评论回复
12
mattlincoln| | 2024-8-5 16:36 | 只看该作者
不同的编程语言和编译器/解释器可能对 “=” 和 “==” 的处理有所不同,因此理解特定语言中的行为是很重要的。

使用特权

评论回复
13
wengh2016| | 2024-8-5 18:27 | 只看该作者
= 和 == 是两个不同的操作符,它们具有不同的功能和用途。了解它们的区别对于避免潜在的陷阱非常重要。

使用特权

评论回复
14
chenqianqian| | 2024-8-5 20:52 | 只看该作者
确实,有时候稍不注意就把两个字符搞混了。

使用特权

评论回复
15
kmzuaz| | 2024-8-5 21:12 | 只看该作者
可以有效避免“=”和“==”的常见陷阱,提高代码的准确性和可靠性。

使用特权

评论回复
16
vivilyly| | 2024-8-6 09:40 | 只看该作者
"=="是比较操作符,用于比较两个值是否相等。如果两边的值相等,那么表达式的结果为真(true),否则为假(false)。

使用特权

评论回复
17
cashrwood| | 2024-8-6 11:31 | 只看该作者
明确区分赋值和比较的场景,不要在需要比较的地方误用赋值操作符。

使用特权

评论回复
18
janewood| | 2024-8-6 13:09 | 只看该作者
使用 “=” 而不是 “==” 进行条件判断会导致错误。

使用特权

评论回复
19
jonas222| | 2024-8-6 15:36 | 只看该作者
“=”用于赋值操作,它将右侧表达式的值赋予左侧的变量。例如,a = 5;表示将数值5赋给变量a。

使用特权

评论回复
20
lzbf| | 2024-8-6 18:01 | 只看该作者
一些编程语言(如JavaScript)还提供了"==="操作符,这是严格比较操作符,它会同时比较两个值的类型和值。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

248

主题

1917

帖子

3

粉丝