浅谈C语言=与==的区别详解

 更新时间:2021年01月29日 10:56:20   投稿:zx  
这篇文章主要介绍了浅谈C语言=与==的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在 C 语言中,最容易产生混淆的操作符要属“=”与“==”。其中,“=”并不等于符号,而是赋值操作符,如 x=3。除此之外,还可以在一个语句中向多个变量赋同一个值,即多重赋值。例如,在下面代码中把 0 同时赋给 x、y 与 z。

x = y = z = 0;

相对于只有一个等号的赋值操作符,关系操作符中的等于操作符采用两个等号“==”来表示。正因如此,导致了一个潜在的问题:出于习惯,我们可能经常将需要等于操作符的地方写成赋值操作符,如下面的代码:

int x=10;
int y=1;
if(x=y)
{
  /*处理代码*/
}

在上面的代码中,if 语句看起来好像是要检查变量 x 是否等于变量 y。实际上并非如此,此时if语句将变量 y 的值赋给变量 x 并检查结果是否为非零。因此,虽然这里的 x 不等于 y,但是 y 的值为 1,if 语句还是会返回真。

当然,当确实需要先对一个变量进行赋值之后再检查变量是否非零时,可以考虑显式给出比较符。示例代码如下:

int x=10;
int y=1;
if((x=y) != 0)
{
  /*处理代码*/
}

这样,程序的可读性就得到了很大提高。

上面的示例代码详细地阐述了将等于操作符“==”误写成赋值操作符“=”所带来的严重后果。同理,将赋值操作符“=”误写成等于操作符“==”也会带来非常严重的后果。示例代码如下:

int x=0;
int y=-1;
if((x==y)<0)
{
  printf("y<0\n");
}

在上面的代码中,if 语句的本意是将变量 y 的值赋给变量 x,然后再判断变量 x 的值是否小于 0。如果变量 x 的值小于 0,就执行语句 printf("y<0\n")。由于错误地将赋值操作符“=”误写成等于操作符“==”,所以无论变量 y 为何值,都不会执行语句 printf("y<0\n")。原因是等于操作符“==”的结果只能是 0 或 1,永远不会小于 0。

除此之外,为了防止将等于操作符“==”误写成赋值操作符“=”,还可以在代码中采用如下形式:

int x=0;
if(0==x)
{
}

这样,就可以在一定程度上避免误写的发生。

到此这篇关于浅谈C语言=与==的区别详解的文章就介绍到这了,更多相关C语言=与==内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • C语言详细实现猜拳游戏流程

    C语言详细实现猜拳游戏流程

    在学习了循环、分支、和函数之后,可以写一些简单的小游戏来给自己的编程之路增添一份乐趣。不仅提升了编码能力,还可以边学边玩,简直妙哉妙哉
    2022-05-05
  • C++模板类的用法实例

    C++模板类的用法实例

    这篇文章主要介绍了C++模板类的用法实例,以实例形式详细讲述了模板类的接口、成员、内联函数等概念及用法,需要的朋友可以参考下
    2014-10-10
  • C语言商品销售系统源码分享

    C语言商品销售系统源码分享

    这篇文章主要为大家分享了C语言商品销售系统源码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • c语言实现http下载器的方法

    c语言实现http下载器的方法

    这篇文章主要介绍了c语言实现http下载器的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • C++实现浮点数精确加法

    C++实现浮点数精确加法

    这篇文章主要为大家详细介绍了C++实现浮点数精确加法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • C语言菜鸟基础教程之for循环

    C语言菜鸟基础教程之for循环

    c语言中的for循环语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句.
    2017-10-10
  • C语言实现财务管理系统

    C语言实现财务管理系统

    这篇文章主要为大家详细介绍了C语言实现财务管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • C++日志记录类实例解析

    C++日志记录类实例解析

    这篇文章主要介绍了C++日志记录类实例,代码功能非常实用,需要的朋友可以参考下
    2014-07-07
  • 如何使用C语言实现平衡二叉树数据结构算法

    如何使用C语言实现平衡二叉树数据结构算法

    对于判断是否为平衡二叉树而言,我们需要知道以下特性:是一个二叉树也是一个二叉排序树该树的每个结点上的(深度)左子树 - 右子树的值为平衡因子(BF(Balance Factor))该树的每一个节点的左子树和右子树的高度至多等于1(平衡因子只可能是-1,0,1)
    2021-08-08
  • C++重载运算符实现分数加减乘除

    C++重载运算符实现分数加减乘除

    这篇文章主要为大家详细介绍了C++重载运算符实现分数加减乘除,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-06-06

最新评论