gpt4 book ai didi

c - 0 精度的 printf 0

转载 作者:太空宇宙 更新时间:2023-11-04 01:01:43 25 4
gpt4 key购买 nike

我想知道为什么 printf("%.d", 0); 什么都不输出,而它输出任何非 0 的数字,而 printf("%d", 0); 按预期输出“0”。

两个代码之间的唯一区别是精度。以下是文档中关于精度的内容:

An optional precision, in the form of a period . followed by an optional digit string. If the digit string is omitted, the precision is taken as zero. This gives the minimum number of digits to appear for d, i, o, u, x, and X conversions.

在那种情况下,精度应该被忽略,不是吗?

最佳答案

来自文档(强调我的):

For integer specifiers (d, i, o, u, x, X): precision specifies the minimum number of digits to be written. If the value to be written is shorter than this number, the result is padded with leading zeros. The value is not truncated even if the result is longer. A precision of 0 means that no character is written for the value 0.

虽然不知道为什么,可能与 C 处理 NULL 指针的方式有关,或者正如@TripeHound 指出的那样,这可能是一个设计决定。

关于c - 0 精度的 printf 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36134970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com