展开全部
这个是一样的
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
这就是++在前和在后的区别
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的后一个数,要是两句的话,还要{}
展开全部
效果上都是一样的:都是把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]
两者都是 先执行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]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有区别,只是b[i++]=a把2步合成一步写了。
但是, b[i]=a;i++的写法要比上面更直观,可读性更强。因为C++书写规范要求每一行语句尽量只完成一件事。(不要完成好几件事),差不多区别就在这里吧。
但是, b[i]=a;i++的写法要比上面更直观,可读性更强。因为C++书写规范要求每一行语句尽量只完成一件事。(不要完成好几件事),差不多区别就在这里吧。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有本质的区别.
若是b[++i] = a;那就不同了. 先计算++i 在执行数组单元的赋值操作
若是b[++i] = a;那就不同了. 先计算++i 在执行数组单元的赋值操作
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int i=0;
则 b[i++]=a..也就是b[0]=a....然后i=i+1;
两者没区别
则 b[i++]=a..也就是b[0]=a....然后i=i+1;
两者没区别
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询