《编写高质量代码:改善c程序代码的125个建议》——建议15-3:避免“&”与“&&”混淆

简介:

本节书摘来自华章计算机《编写高质量代码:改善c程序代码的125个建议》一书中的第2章,建议15-3,作者:马 伟 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

建议15-3:避免“&”与“&&”混淆

同建议15-2相似,“&&”是逻辑操作符(与),它的操作数是布尔型;而“&”是位操作符(与),其操作数是位序列。它们之间的区别如代码清单2-6所示。

代码清单2-6 “&”与“&&”运算符操作示例
#include <stdio.h>
int main (void)
{
    unsigned int x = 0x1101; 
    unsigned int y = 0x1100; 
    /*逻辑操作*/
    printf("sizeof(x && y): %d\n", sizeof(x && y)); 
    if(x&&y) 
    {
            printf("x && y : %d(True) \n", x&&y); 
    }
    else 
    {
            printf("x && y : %d(False) \n", x&&y);
    }
    /*位操作*/
    printf("sizeof(x & y): %d\n", sizeof(x & y)); 
    printf("x & y : %x \n", x&y); 
    return 0;
}

在代码清单2-6中,因为变量x与变量y都不为0,所以执行语句“if(x&&y)”时返回1。而当执行“x&y”(即1101&1100)时,相应的位之间逐一进行逻辑运算(与),因此所得到的结果为1100。代码清单2-6的执行结果如图2-6所示。


bf6dffad985e8b03a221d77af0610257b61bf906
相关文章
Autojs4.1.0实战教程---抖音极速版自动评论
Autojs4.1.0实战教程---抖音极速版自动评论
510 1
|
机器学习/深度学习 数据采集 人工智能
探索AI在软件测试中的应用与挑战
【2月更文挑战第25天】 随着人工智能(AI)技术的迅猛发展,其在软件测试领域的应用逐渐深入。AI不仅改变了传统测试流程,提高了测试效率和质量,也引入了新的挑战。本文将详细探讨AI在软件测试中的具体应用,包括智能化测试用例生成、缺陷预测、自动化测试执行等,并分析当前面临的主要挑战,如数据质量、模型泛化能力和工具集成等问题。通过实例分析和研究展望,本文旨在为软件测试专业人士提供一个关于AI技术融合的全面视角。
|
人工智能 JavaScript 程序员
Fitten Code:在VSCode插件市场备受欢迎的原因是什么?
随着AI技术的不断发展,AI在编写代码方面的能力也日益强大。充分利用AI的能力能够显著提高代码编写的效率和质量。今天我将向大家介绍一款备受瞩目的AI代码神器——Fitten Code,让我们一同揭开它神秘的面纱!
920 3
|
人工智能 自然语言处理 搜索推荐
阿里推出 AtomoVideo 高保真图生视频框架,兼容多种文生图模型
【2月更文挑战第17天】阿里推出 AtomoVideo 高保真图生视频框架,兼容多种文生图模型
1267 5
阿里推出 AtomoVideo 高保真图生视频框架,兼容多种文生图模型
|
自然语言处理 架构师 搜索推荐
一文详解瓴羊×阿里云上的Salesforce联合解决方案
一文详解瓴羊×阿里云上的Salesforce联合解决方案
891 1
|
存储 Linux 数据安全/隐私保护
Star 21.8k!推荐一款实用的免费开源局域网传输工具!轻松搭建网盘的神器!
Star 21.8k!推荐一款实用的免费开源局域网传输工具!轻松搭建网盘的神器!
297 1
|
前端开发 安全 搜索推荐
未来前端开发的新趋势:Web3.0与区块链技术的融合
【2月更文挑战第12天】 本文探讨了Web3.0和区块链技术对未来前端开发领域的影响。不同于传统摘要的简单概括,我们将通过一个创新的视角,深入解析这两项技术如何共同塑造前端开发的新生态,引领未来互联网的方向。文章首先介绍了Web3.0和区块链技术的基本概念,随后详细分析了它们在提高数据安全性、增强用户体验和推动去中心化应用(DApp)开发上的具体应用。最后,我们将展望这一趋势对前端开发者技能要求的变化,以及如何准备迎接这一变革。
|
运维 安全 网络安全
Digicert 证书
DigiCert是全球领先的数字证书颁发机构,提供SSL/TLS、代码签名等多种证书服务,确保网络通信安全。其证书以高安全性、广泛兼容性及优质客户服务著称。DigiCert的EV SSL证书能严格验证网站身份,增强用户信任。通过代码签名,保证软件未经篡改。适用于商业网站和电商,提供高级安全保障。在网络安全日益重要的今天,DigiCert证书是值得信赖的选择,为数字化世界保驾护航。
354 0
|
人工智能 开发框架 数据管理
如何才能更加简单开发AI应用?
随着大模型的快速普及,AI应用开发已经成为炙手可热的领域,然而对于许多人来说,开发一款属于自己的AI应用仍然存在一定的门槛。同时,人工智能的迅速发展为各行各业带来了许多机遇和挑战。对于许多开发者和企业来说,开发AI应用仍然是一个复杂且具有挑战性的任务,为了推动AI技术的广泛应用,简化AI应用开发过程变得至关重要。那么接下来就来简单聊聊如何才能更加简单开发AI应用?
477 1
如何才能更加简单开发AI应用?
|
机器学习/深度学习 自然语言处理 算法
浅谈开源和闭源的认知
浅谈开源和闭源的认知