c语言中的自增++和自减--问题

来源:百度知道 编辑:UC知道 时间:2024/06/12 04:08:49
看了好多baidu知道,说的好深奥,有米有简单点的解释的,最好是通俗易懂
i++所使用或者说i++参与的运算是什么?可以用式子写出来?

a=i++;相当于a=i;i=i+1;

a=++i;相当于i=i+1;a=i;

只为了方便理解,并不是等价的,因为运算效率不同。

i++

保存i的值作为结果,然后给i + 1。

++i
单纯给i + 1。

i原来是1的话 i++的结果是1 但是i本身会变成2

++i 结果是2 i本身也会变成2

C++中避免组合使用自加自减,规范有漏洞。

这个啊,以前我也分得不清,特别是让你算p++ ++p之类的啊就头痛,但后来发现只要把运算符的优先级搞清楚了就简单了

比如
int a=5;
那么a++还是等于5 而a的值却是6了,慢慢来,优先级!!!!!

我可以再线和你交谈的

++i和i++就是不同的
++i是在使用i之前把i的值先加1;
而i++是在使用i之后把i的值加1

--i和i--和上面的差不多的
--i是在使用i之前把i的值先减1,
而i--是在使用i之后把i的值减1

我举一个例子吧
#include<stdio.h>
void main()
{
int i=3;
printf("%d",++i);

}
运行结果就是4

若改为
#include<stdio.h>
void main()
{
int i=3;
printf("%d",i++);

}
则输出结果是3

懂了吗
--i 和i-- 一样的。

最简单的记忆原则是:
i++ : i先参与运算,运算完成后,i自身加1
++i : i先自身加1,然后再参与运算

eg1:
int i = 2;
int j = i++;