clwn.net
当前位置:首页 >> printF("%D\n",D=A>B?(A>C?A:C):(B)); >>

printF("%D\n",D=A>B?(A>C?A:C):(B));

从里面读起 a>c?a:c 如果a>c 则得到a,否则得到c,我们有M表示得到的数 然后是a>b?M:(b) 同上 最后将M(也就是a或c)或b 赋值给d

条件表达式,格式为:d=a?b:d这句话的意思是if(a){c=b;}else{c=d;},运用到你的表达式里面就是, if(k

printf("%d",a);,输出整数a.printf("%5d",a);将整数a按5个字符的宽度显示。printf("%*d",len,a);将整数a按len个字符的宽度显示。*号告诉printf待打印字符的显示宽度从后面的参数列表中提取,指定是多少就按多少个字符宽度显示。

两个的原因都是数据溢出 short在32位系统中占2字节长度,也就是有16位。只能表达-32768~32767共计65536个数字。32767(D) = 0111 1111(B),加上1后为1000 0000(B),由于是有符号数据,所以第一位只表示符号,根据补码规则,数据为-32768 in...

前一句是打印a,b,c的值,后一句是打印a,b,c的地址 &为取地址操作 你知道这些变量都存在内存中的某个地址,这个地址里面有一个数据,这个数据就是这个变量的值 变量的值和变量的地址,这是两个概念

main() {int a=5,b=4,c=3,d; d=(a>b>c); printf("%d\n",d);}求结果 a>b>c 这里是从左到右比较的 先比较a>b 这个值是真的,是1 然后拿1和C比较 1>c是假的,值是0 所以D=0

输出6 d=a>b?(a>c?a:c):(b)); 首先判断a>b,为真,所以输出的是(a>c?a:c) 也就是判断a>c,为假,所以输出c,也就是6

计算首先进入第一个if,判断a>b正确,则为1,继续判断1>c,错误,整个式子值为0,所以不执行下面的语句,进入else if,(c-1>=d)正确,则为1 ,继续判断1==1正确,则执行printf(“%d\n”,d+1);输出为3

第一个IF 里面 判断 A>B>C 她不是一块判断的 而是从左到右进行判断 先判断A>B 因为成立 所以A>B是正确的 所以A>B的值为 1 (1表示TRUE,0表示FALSE) 然后 就变成 1和C比较了 当然1小于C 所以第一个IF 不满足 满足第二个IF 所以就输出2+1 =3 了

&&的优先级高于 || 的优先级,所以先计算&&再计算|| 而!c的值为1,所以最后d为1。

网站首页 | 网站地图
All rights reserved Powered by www.clwn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com