c语言b--<0什么意思

 我来答
风若远去何人留
2015-07-01 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450121
专业C/C++软件开发

向TA提问 私信TA
展开全部

这个是两个操作合并到一个语句中了。

这也是C语言的特色之一。

--表示自减操作,即执行后b的值比原来减一,等效于

b=b-1;

当--在变量后面时,先对b取值做其它操作,再执行自减。

在这个题目里面,就是先判断b<0 然后再执行自减。

比如这个代码:

int main()
{
    int b = 0; //定义b并初始化为10
    if(b--<0)printf("b=%d\n", b); //第一次判断
    printf("%d\n", b);//输出b
    if(b--<0)printf("b = %d\n", b);//第二次判断 
    printf("%d\n", 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
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机,即单片微控制器,也称为单片微型计算机,是将中央处理器(CPU)、存储器(ROM,RAM)、输入/输出接口和其他功能部件集成在一块 在一个小块的集成电路上,从而实现对整个电路或系统的数字式控制。单片机不是完成某一个逻辑功能的芯片,而是... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
Pro___X
2014-03-30 · TA获得超过2.5万个赞
知道大有可为答主
回答量:2540
采纳率:35%
帮助的人:1274万
展开全部
首先,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”,依次类推即可。
更多追问追答
追问

第九题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wdghy123
2015-05-21 · TA获得超过1583个赞
知道大有可为答主
回答量:1514
采纳率:95%
帮助的人:725万
展开全部
判断变量b是否小于0,之后再做b=b-1的操作
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-30
展开全部
就是执行了这条语句之后,b减1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蚁族的奋斗0901
2014-03-30
知道答主
回答量:44
采纳率:0%
帮助的人:25.6万
展开全部
等价于b<0;b=b-1;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式