在C语言中s[j++]和s[j],j++有什么区别?

 我来答
tattackor
2015-10-26 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:898万
展开全部
1、效果是一样的,前者是后者的简化。s[j++]:先执行s[j],然后立马再把j自加一。也就等同于连接着的两条语句s[j],j++的效果。
2、C语言的前置++和后置++,称为自增运算符
前置--和后置--称为自减运算符,下面以自增运算符的区别来加以介绍,自减类似
如果单独写 自增运算符为一个语句,二者没有区别
++i; 和 i++; 都是让i+1赋值给i
但是如果把自增运算符写入到另外表达式中二者就有很大区别了
百度网友a5eb3e1
2013-09-16 · TA获得超过4448个赞
知道大有可为答主
回答量:3486
采纳率:60%
帮助的人:2664万
展开全部

在大多数情况下效果是一样的,前面已经有不少人回答了。

但是,如果要用到表达式的值,效果就有区别了:

前一个表达式的值是 s[j],

后一个表达式的值是 j(用逗号连接的表达式取最右边的表达式作为整个表达式的值)。


例如:

printf("%d\n", s[j++]);     // 打印 s[j] 的值
printf("%d\n", (s[j],j++)); // 打印 j 的值

前一行打印 s[j] 的值,后一行打印 j 的值。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
choris2011
2013-09-08 · TA获得超过173个赞
知道答主
回答量:85
采纳率:0%
帮助的人:45.8万
展开全部
对于数组中的元素来说是一样的。但时 s[j++]相当于先执行s[j]的内容,然后j=j+1。所以s[j++]执行之后j的值变了,而s[j]的值没有变。谢谢,希望采纳。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
woshidaniel
2015-10-08 · TA获得超过9240个赞
知道小有建树答主
回答量:1760
采纳率:96%
帮助的人:957万
展开全部
没区别,两个一致。
s[j++]就是一个获取数组元素s[索引]和j++,++在变量后面,就表示先取j的值为索引,获取s[j]的内容,然后在j++(也就是j=j+1)。所以和后面s[j],j++一致
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5e36164
2013-09-08 · TA获得超过606个赞
知道小有建树答主
回答量:188
采纳率:0%
帮助的人:175万
展开全部
效果是一样的。
s[j++]:先执行s[j],然后立马再把j自加一。也就等同于连接着的两条语句s[j],j++的效果。
如果s[j]和j++这两条语句之间还有其他的句子,就不一样了哈。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式