永发信息网

看看这个c语言程序怎么理解?

答案:4  悬赏:20  手机版
解决时间 2021-08-20 10:51
  • 提问者网友:欲望失宠
  • 2021-08-19 22:14

# include <stdio.h>
main()
{
int a,b,c;
int x,y;
a=3,b=4;c=0;
printf("%d\n",a++-1);
printf("%d\n",a&&b||!c);
printf("%d\n",b/++a);
x=++a||++a&&++c;
printf("%d,%d,%d,%d",a,b,c,x);
a=b=c=1;
y=++a&&++b&&++c-1;
printf("%d,%d,%d,%d",a,b,c,y);
}

结果是:

2

1

0

6,4,0,1

2,2,2,1

就是那个6,4,0,1这个有点不理解,怎么理解,

最佳答案
  • 五星知识达人网友:不想翻身的咸鱼
  • 2021-08-19 23:13

a++-1的值是2,但执行完这步以后就变成了3,也就是a=3


后来a又进行了3次++a运算,所以为6,x=1是因为 ++a||++a&&++c的值为真,b,c的值应该容易理解吧,恩

全部回答
  • 1楼网友:野味小生
  • 2021-08-19 23:57
抱歉的说声你选择的满意答案是有错误的!!执行a++-1之后,a的值并不是3而是4,因为a++后a=4,但是输出a-1,a自身的值并没有-1,只是输出a-1而已!!
  • 2楼网友:梦中风几里
  • 2021-08-19 23:46

前面三个我就不讲了!!但printf("%d\n",b/++a);语句之后a=5,

x=++a||++a&&++c,首先执行++a,此时a=6,由于a!=0,所以后面的++a不执行(因为是||或运算)但是后面的&&(与运算还是必须的!!所以++c)结果就是这么来的!!!!

  • 3楼网友:北城痞子
  • 2021-08-19 23:34

|| 两边的++a属于同级 并不存在执行先后顺序

所以是同时进行的 所以也就是说

y=++a&&++a&&++c-1;

可以理解成

Int n;

n=++a;

y=n&&n&&++c-1;

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯