c语言中的位复合运算符,iOS入门之C语言教程“位逻辑、逗号、复合三种运算符”N18-逗号分隔值文件...

本文是iOS开发入门的C语言教程,重点讲解位逻辑运算符(位逻辑与、位逻辑或、位逻辑非、取补)、逗号运算符和复合赋值运算符。位逻辑运算符常用于硬件设备驱动程序的位操作,例如在条件检查中。逗号运算符允许多个表达式连续计算,其结果为最后一个表达式的值。复合赋值运算符如`+=`提供了一种简化变量赋值的方法,减少了计算次数。通过实例展示了这些运算符的使用和效果。
摘要由CSDN通过智能技术生成

前言:本篇时iOS开发入门教程基础之C语言教程,本篇时第18篇。讲解位逻辑运算符、逗号运算符、复合运算符。

ef9e94e86968c6f02e56f433ebeae9d4.png

位逻辑运算符

位逻辑运算符包括:位逻辑与、位逻辑或、位逻辑非、取补。表列出了所有位逻辑运算符。

82cdbaa29e11b27e509f50a04b80ab23.png

位逻辑位逻辑表达式

在程序中,位逻辑运算符一般被程序员用作开关标志。较低层次的硬件设备驱动程序,经常需要对输入输出设备进行位操作。

如下位逻辑与运算符的典型应用,对某个语句的位设置进行检查:

if(Field & BITMASK)

语句的含义是if语句对后面括号中的表达式进行检测。如果表达式返回的是真值,则执行下面的语句块,否则跳过该语句块不执行。其中运算符用来对BITMASK变量的位进行检测,判断其是否与Field变量的位有相吻合之处。

941cb5ff6b0dd7b35272c6cdae268d19.png

逗号运算符与表达式

在C语言中,可以用逗号将多个表达式分隔开来。其中,用逗号分隔的表达式被分别计算,并且整个表达式的值是最后一个表达式的值。

逗号表达式称为顺序求值运算符。逗号表达式的一般形式为:

表达式1,表达式2 ,…,表达式n

逗号表达式的求解过程是:先求解表达式1,再求解表达式2,一直求解到表达式n。整个逗号表达式的值是表达式n的值。

观察下面使用逗号运算符的代码:

Value=2+5,1+2,5+7;

上面语句中Value所得到的值为7,而非12。整个逗号表达式的值不应该是最后一个表达式的值吗?为什么不等于12呢?答案在于优先级的问题,由于赋值运算符的优先级比逗号运算符的优先级高,因此先执行的赋值运算。如果要先执行逗号运算,则可以使用括号运算符,代码如下所示:

Value=(2+5,1+2,5+7);

使用括号之后,Value的值为12。

【实例4】 用逗号分隔的表达式。本实例中,通过逗号运算符将其他的运算符结合在一起形成表达式,再将表达式的最终结果赋值给变量。由显示变量的值,分析逗号运算符的计算过程。

4557852b578aa859366b548950009fb9.png

例子

1a3ed33d216f3dab1b9b1cd9df86f070.png

输出

复合赋值运算符

复合赋值运算符是C语言中独有的,实际这种操作是一种缩写形式,可使得变量操作的描述方式更为简洁。例如在程序中为一个变量赋值:

Value=Value+3;

这个语句是对一个变量进行赋值操作,值为这个变量本身与一个整数常量3相加的结果值。使用复合赋值运算符可以实现同样的操作。例如上面的语句可以改写成:

Value+=3;

4c9c53580f537e338fada4465a9303b2.png

这种描述更为简洁。关于上面两种实现相同操作的语句,赋值运算符和复合赋值运算符的区别在于:

1.为了简化程序,使程序精炼。

2.为了提高编译效率。

对于简单赋值运算符,如Func=Func+1中,表达式Func计算两次;对于复合赋值运算符,如Func+=1中,表达式Func仅计算一次。一般来说,这种区别对于程序的运行没有太大的影响。但是,如果表达式中存在某个函数的返回值,那么函数被调用两次。

【实例】 使用复合赋值运算符简化赋值运算。

ff7983c38be2a133f1cffbdf6475e67b.png

例子

e34bc04a5f308467a4491ba2416d737c.png

输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值