首页>

int x=1,y=1; ++xy++; y是多少

时间:2020-07-12 11:15:38 /人气:777 ℃
int x=1,y=1; ++xy++; y是多少

来自Gyy_efforts的回答:

太坑爹了,回答了那么详细,但等我打完提交时,楼主居然已经把分给别人了,真是无语啊。汗。。。 简化版 答: ||(或运算)只要有一边成立,则为真,继续执行下一语句。执行顺序是,若左边不真时,则再判断右边;若左边为真时,则不再进行判断右边。所以,++x||y++,判断++x为真时,就不再进行判断(执行)y++。则,++x=2,y++=1;详细版一、首先,你要理解! 1、++在变量前面是先加后再进行运算。如int x=1,则++x=2。(运算前与后,其值都是2) 2、++在变量后面是先运算再进行加1。如int x=1,则x++=2。(运算前是1,运算后是2。) 二、理解&&(与运算)与||(或运算) 1、如:++x&&y++,必须左右两边都为真才执行下一语句。 2、如:++x||y++,只要有一边成立,则为真,继续执行下一语句。执行顺序是,若左边不真时,则再判断右边;若左边为真时,则不再进行判断右边。 最后, 由于你的++x||y++的从左到右进行运算的,所以||(或运算)执行到++x为真时(即不为0),则直接停止判断,直接执行下一句。 所以, ++x执行了,前加1;而y++没有执行,则没有加1。即x=2,y=1。来自:求助得到的回答

来自missgya的回答:

y = 1,不变。这是C语言里的所谓“短路”。对多个或运算,若有一个表达式为真,右边的所有表达式都不会再计算。因为++x的结果为2,已经为真,所以右边的y++不用再计算。因为y的结果是1.本回答被提问者采纳

来自18238836802yjr的回答:

y=1,在逻辑表达式的求解过程中,并不是所有的运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才会执行该运算符。,所以此处y=2

来自匿名用户的回答:

  直接输出y的值:1

追问

y++ 不是先把y的值加一后作为y++的结果,得出2吗

来自热心网友的回答:

一、首先,你要理解!1、++在变量前面是先加后再进行运算。如int x=1,则++x=2。(运算前与后,其值都是2)2、++在变量后面是先运算再进行加1。如int x=1,则x++=2。(运算前是1,运算后是2。)二、理解&&(与运算)与||(或运算)1、如:++x&&y++,必须左右两边都为真才执行下一语句。2、如:++x||y++,只要有一边成立,则为真,继续执行下一语句。执行顺序是,若左边不真时,则再判断右边;若左边为真时,则不再进行判断右边。最后,由于你的++x||y++的从左到右进行运算的,所以||(或运算)执行到++x为真时(即不为0),则直接停止判断,直接执行下一句。所以,++x执行了,前加1;而y++没有执行,则没有加1。即x=2,y=1。



赢咖平台1956注册_葡京娱乐登录官网_牡蛎知识问答大全|网站地图