.a=5,b=3,m=0,n=0均为整型,那么计算机执行完表达式(m=a>b || n=++a)后,a,b,m,n分别是多少?
时间: 2024-04-08 12:31:36 浏览: 11
根据C语言中的运算规则,表达式的运算顺序为从左到右。在执行表达式(m=a>b || n=++a)时,首先计算a>b,由于a的值为5,b的值为3,所以a>b的结果为1(即真)。然后将该结果赋值给m,所以m的值为1。接着执行n=++a,由于a的当前值为5,所以++a的结果为6,并且将a的值加1,所以此时a的值变为6。然后将该结果赋值给n,所以n的值为6。因此,执行完表达式(m=a>b || n=++a)后,a的值为6,b的值为3,m的值为1,n的值为6。
相关问题
a=0,b=3均为整型,那么计算机执行完表达式(++a || b--)后,a,b分别是多少?
根据C语言中的运算规则,++a表示先将a的值加1,然后再使用a的新值;b--表示先使用b的当前值,然后再将b的值减1。在执行表达式(++a || b--)时,首先计算++a,由于a的当前值为0,所以++a的结果为1,并且将a的值加1,所以此时a的值变为1。然后再计算b--,由于b的当前值为3,所以b--的结果为3,并且将b的值减1,所以此时b的值变为2。最后计算逻辑或运算符||,由于a的值为1,所以整个表达式的结果为1。所以执行完表达式(++a || b--)后,a的值为1,b的值为2。
c语言中.a=b++=10 ,这样赋值正确吗
如果a和b都是整型变量,那么语句"a=b=10"是正确的,它将变量b的值设为10,然后将a的值也设为10。这种赋值操作是连锁赋值,其作用相当于执行两个赋值操作"a=10"和"b=10"。如果a和b是不同类型的变量,或者其中至少有一个是常量,那么这个语句就会出现编译错误。