早教吧 育儿知识 作业答案 考试题库 百科 知识分享

自增、自减运算符碰到具体例子还是不太明白。i++:i参与运算后,i的值再自增1,这里的“参与运算”是什么意思?是否包括这个自增运算本身?如果单独的一个“i++”,它的值是什么?

题目详情
自增、自减运算符碰到具体例子还是不太明白。i++:i参与运算后,i的值再自增1,这里的“参与运算”是什么意思?是否包括这个自增运算本身?如果单独的一个“i++”,它的值是什么?
▼优质解答
答案和解析
这样吧,我举个例子
i=1;
a=i++;
b=i++;
c=i++;
printf("%d%d%d%d",a,b,c,i);
结果为:a=1,b=2,c=3,i=4
解释:a=i++就是i先参与运算,在增加1,也就是先把i的值1赋给a,在加1,i的值变成2了
b=i++,先参与运算,在增加1,也就是先把i的值2赋给b(上一步,i的值变成2),在加1,i的值变成3了
b=i++,先参与运算,在增加1,也就是先把i的值3赋给c(上一步,i的值变成3),在加1,i的值变成4了
最后i的值是4
++i,又不一样,是先增加1,在赋值,下面给个例子:
main()
{
int i=8;
printf("%d\n",++i); /*….9….*/
printf("%d\n",--i); /*….8….*/
printf("%d\n",i++); /*….8….*/
printf("%d\n",i--); /*….9….*/
printf("%d\n",-i++); /*….-8….*/
printf("%d\n",-i--); /*….-9….*/
}
i的初值为8,第2行i加1后输出故为9;第3行减1后输出故为8;第4行输出i为8之后再加1(为9);第5行输出i为9之后再减1(为8) ;第6行输出-8之后再加1(为9),第7行输出-9之后再减1(为8)。
如果还是上面那个例子:
i=1;
a=++i;
b=++i;
c=++i;
printf("%d%d%d%d",a,b,c,i);
结果为:a=2,b=3,c=4,i=4