c语言中的自增++和自减--问题
来源:百度知道 编辑:UC知道 时间:2024/09/23 16:29:45
看了好多baidu知道,说的好深奥,有米有简单点的解释的,最好是通俗易懂
i++所使用或者说i++参与的运算是什么?可以用式子写出来?
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++;