C语言运算的一个问题
发布网友
发布时间:2023-12-24 05:36
我来回答
共3个回答
热心网友
时间:2024-03-11 02:01
这不是抄袭的,是我辛苦的打得
其实是一个知识点前置自增和后置自增你没完全掌握.
1.是否明确b--和--b的差别在哪里(先从你懂的入手这样会好理解点)?
其实++b和理解,就是b=b+1;
例如:
int b=0; //b++;就是 b=b+1;
例如 ++b>=1;表示先b=b+1,在比较b>=1,显然表达式是成立的
其实b++是说在现在参加运算时,用b的值,在这个表达式运算结束后,b在加1
例如:
int a=0; //b=a++;表示 b先取得a的值,在b=a++;结束后,a在a=a+1
所以 a++>=0;表达式是真的,因为a先在表达式确实是大于等于0的,在这个表达式结束后,
a才自加1.
我写程序你运行看下结果就明白了:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int a=0,b;
printf("a=%d\n",a,b);
printf("a++>=1 : %d\n",a++>=1);
printf("a now is: %d\n",a);
system("PAUSE");
return 0;
}
输出:
a=0
a++>=1: 0 //0表示表达式的值为0即a++>=1是假的
a now is :1
总结:
其实前置自增(++b)和后置自增(b++)的有相同和不同
相同:b最后都是 b=b+1
不同在于:
++b在当前表示使用b之前,b先+1,所以如果b=1; ++b>=2;他是真的,因为b当前为2
b++后置自增顾名思义就是,b的值先使用,等一下表达式计算完了,b在b=b+1;
在+1存在滞后的原则,故名后置自增(方便理解我是这么理解的)
有不理解的 QQ451006071
热心网友
时间:2024-03-11 02:01
b-->0表示先判断b>0,判断完后b减一
--b>0表示先b减一,然后判断减一之后的这个数是否大于零
x=b--表示把b赋值给x,然后b减一
x=--b表示先b-1,然后把减一后的数值赋值给x追问你确定么?
我一直很疑惑呢
追答是的,--表示自减,前后表示运算的顺寻,在前面是先自减后执行,在后面是先执行后自减
热心网友
时间:2024-03-11 02:02
我们先看表达式左边 b-- 或 --b,
b--也是一个表达式,它的结果是b
--b也是一个表达式,它的结果是b-1 这两个结果再和 >0 去比较,可定不一样了是吧。
然后我们再看b本身,两条表达式的b都是变化了, 只是第一条b--表达式的变化不影响结果。
而--b表达式的b变化了并且影响结果。 这就是 -- 放在前面和后面的结果。