C语言中++a*--a==b?12%5:'x'怎么理解?主要是我不明白为什么a++*--a的结果为1粗心的结果:a=1,b=0;

来源:学生作业帮助网 编辑:作业帮 时间:2024/10/01 10:49:36
C语言中++a*--a==b?12%5:'x'怎么理解?主要是我不明白为什么a++*--a的结果为1粗心的结果:a=1,b=0;
xTn@~^Hj s<@ GR0cҐH@6iJ;ˉWFU,ޙM':umyeEŒq5tRze`oIo[ZsCz&=$>蘤n.=j`@e_`Sd,M Sj/z?##9_2?.ktˢz3u|xdx̝ q]O6ϐ'a7`4]>fBs 6ŀ`/֝?3~;rgBYo®JԩQЧ"-ڮX: lLɿAwɄzF&g28_k mv ,%9P"VXiy&3>ꑞt-4srDf`! +<QQkN8el2X7š!bPqɮ` Ba-r#<|, 0#,y Jн['|4zX4HuNsx˔UGc-r)rWP0'SW5>)`ش'8Tʳ ^A<`$_|N~"ۣz0- n$o2{\447ۤ4܁n+)іgrmFfcIF:<7ާ7zQz

C语言中++a*--a==b?12%5:'x'怎么理解?主要是我不明白为什么a++*--a的结果为1粗心的结果:a=1,b=0;
C语言中++a*--a==b?12%5:'x'怎么理解?主要是我不明白为什么a++*--a的结果为1
粗心的结果:a=1,b=0;

C语言中++a*--a==b?12%5:'x'怎么理解?主要是我不明白为什么a++*--a的结果为1粗心的结果:a=1,b=0;
++a*--a分开写就是:
a=a+1;
a=a-1;
a*a;
的意思.
  至于你说++a*--a为什么会是1?那就要看a是初始化为几了,如果初始化为1,那结果自然是1;如果初始化为为2那应该就是4了.
  ++a*--a==b的意思是把++a*--a的运算结果与b比较一下看是否相等,给谁都不赋值.
  12%5用12除以5取余数的意思,它应该等于2.
  'x'是C/C++提供的取x的ASCII码的意思;x(小写)的ASCII码是十进制数120,换算成16进制是0x78.你看,用'x'又直观又省事.它就是一个立即数,与你写120和0x78是一回事……
那么整个表达式++a*--a==b?12%5:'x'的意思是什么呢?这个语句叫?语句,是分支语句的一种,是说如果?前面的表达式为真,则执行?后面的语句,否则执行:后面的语句.你这里的具体意思是:如果把整个表达式赋给一个变量p,即p=++a*--a==b?12%5:'x'的话,那么,当++a*--a==b成立(即++a*--a=b)的时候,p的值就等于12%5=2,否则的话p就等于'x',即等于120.