指点下C语言自增和自减的运算

发布时间:2024-05-31 10:18 发布:上海旅游网

问题描述:

麻烦大家给指点下!
老师讲过后,还是不太明白!
什么是 ++n 是先++在使用 n++ 是先使用再++
就这点搞不明白,
希望大家给 详细。详细 。点解 下 最好再来个 详细 的例子
不胜感激!

问题解答:

自增分前缀自增和后缀自增。无论是什么,执行自增都有1个副作用,就是原来变量的值会增加1。例如int a=1;a++;或int a=1;++a;执行后,a==2。

而他们的区别就在于整个自增表达式的值不同。如(a++)的值是变量a自增以前的值,如上面例子,(a++)==1。而(++a)的值则是变量a自增以后的值,即(++a)==1+1==2。

n=10,
1.a=n++; -> a=10, n=11
2. b=++n; -> b= 11, n=11

++n先加加再使用,是指它放在表达中时,先执行n=n+1,再计算表达式的值,如:n=0;x=++n+2;在计算x=++n+2;时,先计算n=n+1=0+1=1,再使用此时n的值计算表达式的值,即:x=n+2=1+2=3;
n++先使用再加加,是指它放在表达式中时,先用n的原值计算表达式的值后,再使n增1,如:n=0;x=2+n++;在计算x=2+n++;时,先使用n的原值计算表达式的值,即:x=2+n=2+0=2;再使n增1,即n=n+1=0+1=1。

++i;--i; 在使用i之前,先把i加减1,在用新值参加其它运算。
i++;i--;在使用i之后,把i的值加减1;
例题 main()
{int i=3,x,y;
x=i++; /*x=3,i=4*/
y=++i; /*y=5,i=5*/
printf("%d %d %d\n",x,y,i);
}

热点新闻