c语言中 b=2&&(-1) 则b等于多少?

 我来答
雍菲速婷
2019-08-12 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:28%
帮助的人:628万
展开全部
3)。
逻辑运算符是根据表达式的值来返回真值或是假值。其实在c语言中没有所谓的真值和假值,只是认为非0为真值,0为假值。
符号
功能
&&
逻辑与
||
逻辑或
!
逻辑非
当表达式进行&&运算时,只要有一个为假,总的表达式就为假,只有当所有都为真时,总的式子才为真。当表达式进行||运算时,只要有一个为真,总的值就为真,只有当所有的都为假时,总的式子才为假。逻辑非(!)运算是把相应的变量数据转换为相应的真/假值。若原先为假,则逻辑非以后为真,若原先为真,则逻辑非以后为假。
还有一点很重要,当一个逻辑表达式的后一部分的取值不会影响整个表达式的值时,后一部分就不会进行运算了。例如:
a=2,b=1;
a||b-1;
因为a=2,为真值,所以不管b-1是不是真值,总的表达式一定为真值,这时后面的表达式就不会再计算了。
这是一类特殊的运算符,自增运算符++和自减运算符--对变量的操作结果是增加1和减少1。例如:
--couter;
couter--;
++amount;
amount++;
看这些例子里,运算符在前面还是在后面对本身的影响都是一样的,都是加1或者减1,但是当把他们作为其他表达式的一部分,两者就有区别了。运算符放在变量前面,那么在运算之前,变量先完成自增或自减运算;如果运算符放在后面,那么自增自减运算是在变量参加表达式的运算后再运算。这样讲可能不太清楚,看下面的例子:
num1=4;
num2=8;
a=++num1;
b=num2++;
a
=++num1;这总的来看是一个赋值,把++num1的值赋给a,因为自增运算符在变量的前面,所以num1先自增加1变为5,然后赋值给a,最终a也为5。b=num2++;这是把num2++的值赋给b,因为自增运算符在变量的后面,所以先把num2赋值给b,b应该为8,然后num2自增加1变为
9。
那么如果出现这样的情况我们怎么处理呢?
c=num1+++num2;
到底是c=(num1++)+num2;还是c=num1+(++num2);这要根据编译器来决定,不同的编译器可能有不同的结果。所以我们在以后的编程当中,应该尽量避免出现上面复杂的情况。
接培胜关雀
2020-03-22 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.3万
采纳率:34%
帮助的人:848万
展开全部
b=2&&(-1)
其中&&表示逻辑关系“并且”,右边(-1)不等于0即为真,左边2不等于0也为真,所以等号右边的值为真,然后给b赋值,如果为真则赋值1,假则赋值0
所以b=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阎希荣盖鸟
2020-03-05 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.3万
采纳率:30%
帮助的人:901万
展开全部
答案:
b
=
1
解释:
因为&&是逻辑与运算,当且仅当两边的值都是非0值(真值)时,整个表达式值(“=”符号右边部分)才为真(值为1),否则为假(值为0)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
富望亭蓟衣
2020-04-28 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:34%
帮助的人:2213万
展开全部
&&表示与,“与”两边都不为0则值为1,只要有一边为0则值为0.
所以这里b=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式