发布网友 发布时间:2024-09-05 11:01
共1个回答
热心网友 时间:2024-10-04 03:35
小数点前面的数字表示输出列数,数字位数大于它时,按实际位数输出,小数点前空缺也是。
小数点后面的数字表示输出的小数点位数,如果位数不足就会四舍五入,如果位数不够显示就会在后面补0。
比如x=12.31913,则printf("%5.2f",x)就是“12.32”,注意小数点也算一位数长!
又如x=2.31913,则printf("%5.2f",x)就是“ 2.32”,注意小数点也算一位数长,2前面还有一个空格!
所以你上面问的5.2是指结果总长是五位数(注意小数点也算一位数长),就是小数点前两个数字,不足就用空格表示,小数点后保留两位,不足四舍五入!
小数点也算在宽度之中。.2是保留两位小数,5是指宽度为5。
输出5位数,期中两位是小数,如果一个数大于5位如100000,将输出100000.00也就是说一但数值超过限定值将不再限制整数位。
且c语言中%d是表示整型数据(即整数) %f表示的是浮点型数据(即小数) 而%5.2f是表示五位有效数字且小数点后有两位数字的浮点型数据。
类似于a+=a++;或者(i++)+(i++)+(i++)属于未定义行为,并不是说c语言中还未定义这种行为,它早有定论,它的结果取决于编译器实现,不要写这样的代码!
扩展资料
比较特别的是,比特右移(>>)运算符可以是算术(左端补最高有效位)或是逻辑(左端补 0)位移。例如,将 11100011 右移 3 比特,算术右移后成为 11111100,逻辑右移则为 00011100。因算术比特右移较适于处理带负号整数,所以几乎所有的编译器都是算术比特右移。
运算符的优先级从高到低大致是:单目运算符、算术运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符(=)和逗号运算符。
参考资料来源:百度百科-c语言的运算符号