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

 我来答
瞿桂花胥裳
2019-09-22 · TA获得超过3.5万个赞
知道大有可为答主
回答量:1.4万
采纳率:31%
帮助的人:693万
展开全部
“==”是相等的意思,和数学中的“=”一样的,但是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的值已经不是初始值了。手打,要尊重
储希荣丑胭
2019-04-07 · TA获得超过3.7万个赞
知道小有建树答主
回答量:1.5万
采纳率:31%
帮助的人:860万
展开全部
你之前应该定义了一个数组指针a,*a的意思是这个数组(不管是char型还是int型)的第一个元素的值。*(a+i*4+j)=0的意思是将0赋值给这个数组的第(i*4+j+1)个元素
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
澄遐思宓桥
2019-04-08 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:28%
帮助的人:974万
展开全部
==就是条件判断
这题目有点晕人
简单看a=(i==j)?i:j;如果i==j成立,返回i,即a=i,否则返回j,即a=j
然后就是++放左边和右边的区别了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
汤忠嵇秋
2019-10-25 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:31%
帮助的人:778万
展开全部
我们把这条语句分拆开就自然明白其中的含义:
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。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式