青秋. 2022-11-25 20:16 采纳率: 100%
浏览 0
已结题

第一道答案我觉得是-1,1。第二道完全不理解

img

img


#include<stdio.h>
int main()

{

int a=-2,b=0; 

while(a++&&++b); 

printf("%d,%d\n",a,b);

}

#include <stdio.h>
int main()

{

char c; 

for(;(c=getchar())!='#';)

    putchar(++c);

}

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-11-25 20:45
    关注

    while(a++&&++b);
    第一次循环,a为-2,为真,执行++b后b为1,条件为真,继续循环,然后a加1为-1
    第二次循环,a为-1,为真,执行++b后b为2,条件为真,继续巡回,然后a加1为0
    第三次循环,a为0,为假,逻辑与的结果肯定为假,++b不执行,b还是2。while循环结束。然后a加1为1
    最后a=1,b=2
    首先a++是先用a当前值进行逻辑判断,然后a的值加1
    其次,逻辑与左侧的表达式如果为假,右侧表达式将不执行

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月3日
  • 已采纳回答 11月25日
  • 创建了问题 11月25日