b[i++]=a 与 b[i]=a;i++ 两者有什么不同?

请问两者分别有什么不同,能举例说明一下吗?谢谢!!!!... 请问两者分别有什么不同,能举例说明一下吗?谢谢!!!! 展开
 我来答
淦海瑶s1
2012-02-05 · TA获得超过3646个赞
知道大有可为答主
回答量:3341
采纳率:100%
帮助的人:762万
展开全部
这个是一样的
b[++i]=a;和b[i]=a;i++;是同样的同能的

这样理解
因为在你那个语句中
i是自加一后再用的
如i=1的时候,前一句运行完成后b[2]=a,i=2
而后一句运行完成后是b[1]=a;i=2
这样明白了?
而b[++i]=a;运行完成后是b[1]=a;i=2

这就是++在前和在后的区别
追问
i++ 不是运行后再加1吗? 怎么是自加1后再用呢?
其实我个人觉得是一样的,不过程序改错题说要把第一个改成第二个,我就不理解了。还望多多指教。
追答
不好意思,我想错了,习惯性思维,呵呵
b[i++]=a;和b[i]=a;i++;是同样的功能的
这两个是一样的,看运行后的结果,知道他们实现的功能

不好意思,我的一个习惯性思路,曾经我做过一个小程序,功能是实现在一组数中,选出不重复的最大的几个数,其中用到过这个语句,呵呵
int a[500]; //这个数组中有500个数,有很多相等的,要找出最大的5个不重复的数
int b[5];
int i,j;
//排序我不写了,排序完成后,拿出5个数
j=0;
b[j]=a[0];
for(i=1;j<5;i++)
if(b[j]!=a[i])
b[++j]=a[i]; //也就是把a[i]复制给b的后一个数,要是两句的话,还要{}
167993935
2012-02-05
知道答主
回答量:12
采纳率:0%
帮助的人:4.9万
展开全部
效果上都是一样的:都是把a放到b[i],然后i++
两者都是 先执行b[i]=a 然后i=i+1
可以理解为写法不同
你可以写一个这样的小程序试试的
#include<stdio.h>
void main()
{
int a[3]={1,2,3};
int k,i=0;
a[i++]=0;
for(k=0;k<3;k++)
printf("%d",a[k]);
i=0;
a[i]=0;
for(k=0;k<3;k++)
printf("%d",a[k]);
}
你会发现两次输出 变0的都是a[0]
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Quasimodo2001
2012-02-05 · TA获得超过254个赞
知道小有建树答主
回答量:211
采纳率:0%
帮助的人:203万
展开全部
没有区别,只是b[i++]=a把2步合成一步写了。
但是, b[i]=a;i++的写法要比上面更直观,可读性更强。因为C++书写规范要求每一行语句尽量只完成一件事。(不要完成好几件事),差不多区别就在这里吧。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
若影蜗牛
推荐于2018-05-11 · TA获得超过813个赞
知道小有建树答主
回答量:577
采纳率:0%
帮助的人:568万
展开全部
没有本质的区别.

若是b[++i] = a;那就不同了. 先计算++i 在执行数组单元的赋值操作
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
玥殇1
2012-02-05 · TA获得超过145个赞
知道答主
回答量:94
采纳率:0%
帮助的人:44.1万
展开全部
int i=0;
则 b[i++]=a..也就是b[0]=a....然后i=i+1;
两者没区别
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式