请c语言高手解释下

 我来答
Strayyy
2016-07-05 · TA获得超过822个赞
知道小有建树答主
回答量:296
采纳率:75%
帮助的人:79万
展开全部
k--的结果是k,到下一条语句k值才变成k-1,--k是在当前语句k值就变成k-1。比如:
k = 3;
a = k--;(这里k值还没变,是3,所以a = 3)
b = k;(这里k值变成2,所以a = 2)
而如果是:
k = 3;
a = --k;(这里k值就已经变为2,所以a = 2)
b = k;(这里b = 2)
所以--k对k值的改变是马上执行的,而k--对k值的改变是在下一条语句才执行,你的应该改成:
i = --k -2;
注:由于不同编译器可能有不同的解释,所以对于--k、k--、++k、k++这类语句,一个好的习惯是将它们单独作为一个语句,不参与运算,也就是将i = --k - 2写成:
--k;(这里写k--也一样)
i = k - 2;
追问
谢谢,大概懂了
黄5帝
2016-07-05 · TA获得超过789个赞
知道小有建树答主
回答量:696
采纳率:0%
帮助的人:161万
展开全部
你要看优先级啊,你那里是几个-?三个吗?
--,-=,--这个是双目运算,比-=优先级低啊
i=k---2等价于i=k-2,再执行k--,你在后面加多一个printf,输出k试试看k的值是多少就知道了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
skywalker2046
2016-07-05 · TA获得超过676个赞
知道小有建树答主
回答量:782
采纳率:0%
帮助的人:259万
展开全部
a=k--;等价于a=k;k=k-1;。
a=--k;等价于k=k-1;a=k;。
++和--是自增和自减运算,记住窍门,在变量的前边就是先自增然后对外传值,在变量后边就是要先对外传值然后自增。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哎呦您这写bug呢
2016-07-05 · TA获得超过198个赞
知道小有建树答主
回答量:138
采纳率:0%
帮助的人:97.9万
展开全部
k--是先用k的值在减去一,--k是先减去一在用k的值,所以如果是--k - 2那么结果等于2
追问
k-1之后再减2不对吗?
追答
不对,-- 或 ++放前面或放后边不一样,放后面是先把值取出来用,用完再执行++
或--,放前面则相反,限执行++或--,在用变量的值,所以这里是先用k的值减去2,然后在k-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式