c语言问题,a=(--i==j++)?--i;++j;这句话是什么意思,两个==是什么意思?

如题所述

“==”是相等的意思,和数学中的“=”一样的,但是C语言中的“=”是赋值的意思,就是把等号后面的值给前面的数,“?”是判断运算符,当“?”前面的运算成立时,执行--i,不成立时执行++j,这里说的运算成不成立,就是看“--i==j++”成立不,还有就是j++和++j的区别,j++是自己先参与运算,在自身加1,而j++是先自身加1在参与运算,同理i--也是这样的,所以i--==j++是i-1==j,
然后j在加1,所以这句话的意思就是,你先判断i-1是否等于j,如果等于,a=--i,如果不等于,a=++j。但是一定要记住,在你做判断的时候,i的值和j的值都已经变了,所以后面的i和j的值已经不是初始值了。手打,要尊重
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-07
你之前应该定义了一个数组指针a,*a的意思是这个数组(不管是char型还是int型)的第一个元素的值。*(a+i*4+j)=0的意思是将0赋值给这个数组的第(i*4+j+1)个元素
第2个回答  2019-04-08
==就是条件判断
这题目有点晕人
简单看a=(i==j)?i:j;如果i==j成立,返回i,即a=i,否则返回j,即a=j
然后就是++放左边和右边的区别了
第3个回答  2019-10-25
我们把这条语句分拆开就自然明白其中的含义:
1
--i
2
--i
3
++j
4
a=(i==j)?i:j;
5
j++;
含义就非常清楚了:
1
首先i减去2,j加上1;
2
判断i和j是否相等:
如果不相等,a=j。
如果相等a=i(既然i和j相等,等于哪个不重要)
3
最后再将j加1。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网