c语言b--<0什么意思
答案:5 悬赏:40
解决时间 2021-01-07 01:49
- 提问者网友:戎马万世
- 2021-01-06 20:06
c语言b--<0什么意思
最佳答案
- 二级知识专家网友:话散在刀尖上
- 2021-01-06 20:15
这个是两个操作合并到一个语句中了。
这也是C语言的特色之一。
--表示自减操作,即执行后b的值比原来减一,等效于
b=b-1;
当--在变量后面时,先对b取值做其它操作,再执行自减。
在这个题目里面,就是先判断b<0 然后再执行自减。
比如这个代码:
int main()
{
int b = 0; //定义b并初始化为10
if(b--<0)printf("b=%d
", b); //第一次判断
printf("%d
", b);//输出b
if(b--<0)printf("b = %d
", b);//第二次判断
printf("%d
", b);//再次输出b
return 0;
}对于这个程序,分析如下:
1 b初始值为0;
2 执行第一次判断时,先判断b<0,不成立,然后执行--,b值为-1;
3 由于第一次判断不成立,所以第一次判断的时候不会执行输出;
4 之后会执行第一次输出b, 输出b的值-1;
5 执行第二次判断,这时b值为-1,小于0成立;
6 执行判断后,b会再次自减,b值为-2;
7 执行第二次判断时的输出,输出b=-2;
8 执行再次输出b,值为-2。
综上,最终的输出会是:
-1
b = -2
-2
这也是C语言的特色之一。
--表示自减操作,即执行后b的值比原来减一,等效于
b=b-1;
当--在变量后面时,先对b取值做其它操作,再执行自减。
在这个题目里面,就是先判断b<0 然后再执行自减。
比如这个代码:
int main()
{
int b = 0; //定义b并初始化为10
if(b--<0)printf("b=%d
", b); //第一次判断
printf("%d
", b);//输出b
if(b--<0)printf("b = %d
", b);//第二次判断
printf("%d
", b);//再次输出b
return 0;
}对于这个程序,分析如下:
1 b初始值为0;
2 执行第一次判断时,先判断b<0,不成立,然后执行--,b值为-1;
3 由于第一次判断不成立,所以第一次判断的时候不会执行输出;
4 之后会执行第一次输出b, 输出b的值-1;
5 执行第二次判断,这时b值为-1,小于0成立;
6 执行判断后,b会再次自减,b值为-2;
7 执行第二次判断时的输出,输出b=-2;
8 执行再次输出b,值为-2。
综上,最终的输出会是:
-1
b = -2
-2
全部回答
- 1楼网友:舊物识亽
- 2021-01-06 21:12
就是执行了这条语句之后,b减1
- 2楼网友:春色三分
- 2021-01-06 21:01
判断变量b是否小于0,之后再做b=b-1的操作
- 3楼网友:等灯
- 2021-01-06 20:36
首先,b++表示对b做自加运算,我们用c代替,c=b++;
然后,a+=b++ 等于 a+=c,即a=a+c,也就是说“==”之前部分是给a赋值的,用d代替,即d=a+c;
最后是一个逻辑判断d==0,也就是判断前面计算出来的a是否等于0.
要注意是b++,不是++b,也就是说在当前这一次判断的时候b并不自加,而是在当前判断执行完之后才自加1.
比如初始a=1, b=2,b没有自加,a=a+b=1+2=3,那么这句话这次是在判断“3==0”,下次再判断的时候b才自加变成了2,a=a+b=3+2=5,相当于在判断“5==0”,依次类推即可。追问
第九题追答A
不懂追问追问
追答然后呢.
我还要去做物理练习,30分钟后找我~追问是2和8选B呀追答呵呵
然后,a+=b++ 等于 a+=c,即a=a+c,也就是说“==”之前部分是给a赋值的,用d代替,即d=a+c;
最后是一个逻辑判断d==0,也就是判断前面计算出来的a是否等于0.
要注意是b++,不是++b,也就是说在当前这一次判断的时候b并不自加,而是在当前判断执行完之后才自加1.
比如初始a=1, b=2,b没有自加,a=a+b=1+2=3,那么这句话这次是在判断“3==0”,下次再判断的时候b才自加变成了2,a=a+b=3+2=5,相当于在判断“5==0”,依次类推即可。追问
第九题追答A
不懂追问追问
追答然后呢.
我还要去做物理练习,30分钟后找我~追问是2和8选B呀追答呵呵
- 4楼网友:西风乍起
- 2021-01-06 20:24
等价于b<0;b=b-1;
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯