c语言++与--问题

来源:百度知道 编辑:UC知道 时间:2024/07/07 07:52:05
例一:
a=3,b=(++a)+(++a), b=?
例二:
a=3,b=(a++)+(a++), b=?
例三:
a=3,b=(++a)+(a++), b=?
例四:
a=3,b=(a++)+(++a), b=?
怎么算啊,一头雾水???

10,先自增两次,再加到一起,相当于5+5
6,先加到一起给b,然后再自增两次,相当于3+3
8,先自增一次,然后相加给b
8,和上一个一样
要注意的是++a在算术运算之前全部完成,而a++在算术运算完了之后才进行,不过有些编译器不是这样的,但是大部分是这样的

这种题很简单的,只需弄明白++a和a++的区别,还有运算级的高低就可以了。++a是先自增1再参加运算,而a++是先参加运算再自增1。
所以结果是
例一:先自增两次a=5,再加到一起赋值给b,b=5+5=10.
例二:先加到一起赋值给b,然后再自增两次,相当于b=3+3=6.
例三:先自增一次a=4,然后相加给b,b=4+4=8,a再增一次。
例四:先自增一次a=4,然后相加给b,b=4+4=8,a再增一次。

例一:9
例二:7
例三:8
例四:8
a++是此时表达式的值是a,表达式完后a自加1
++a是此时表达式的值是a+1

楼主要了解一个原理呀 ++a 的意思是 想将a的值加1再运用 而a++的原理是 先把a用了在加一 这个明白了 就简单了 撒 答案自己试做做一下吧

9
7
8
8
++A先加,再执行
A++先执行,再加

a++,先使用a再++
++a,先++再使用a
EX:a=1;b=a++;则b=1;a=2;
b=++a;则b=a=2;
--同理
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=1;
int b,c;
b=a++;
a-=1; // a=1;
c=++a;
printf("%d %d",b,c);
system("pause");
return 0