
c语言问题,a=(--i==j++)?--i;++j;这句话是什么意思,两个==是什么意思?
4个回答
展开全部
“==”是相等的意思,和数学中的“=”一样的,但是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的值已经不是初始值了。手打,要尊重
然后j在加1,所以这句话的意思就是,你先判断i-1是否等于j,如果等于,a=--i,如果不等于,a=++j。但是一定要记住,在你做判断的时候,i的值和j的值都已经变了,所以后面的i和j的值已经不是初始值了。手打,要尊重
展开全部
你之前应该定义了一个数组指针a,*a的意思是这个数组(不管是char型还是int型)的第一个元素的值。*(a+i*4+j)=0的意思是将0赋值给这个数组的第(i*4+j+1)个元素
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
==就是条件判断
这题目有点晕人
简单看a=(i==j)?i:j;如果i==j成立,返回i,即a=i,否则返回j,即a=j
然后就是++放左边和右边的区别了
这题目有点晕人
简单看a=(i==j)?i:j;如果i==j成立,返回i,即a=i,否则返回j,即a=j
然后就是++放左边和右边的区别了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我们把这条语句分拆开就自然明白其中的含义:
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。
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。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询