c语言%f变量,f后面是数字

标签 c variables declare

我想知道为什么有必要写%f on variable, and f after the number itself? 。 我知道如果我想具体说明机器,需要在数字后面写 f,但是当我在同一行声明变量是 f 时为什么需要这样做?

最佳答案

数字后面的 f 是使其成为 float 而不是 double 。在C中,3.14是 double ,而 3.14f是一个 float 。同样,您可以附加 ul使数字无符号和/或长; 例如42U是一个无符号整数,42L很长,42UL是一个无符号长整型,并且 42ULL是一个无符号的 long long。

%f是一个格式说明符,用于告诉函数变量的类型是什么。 C 并没有真正的 native 类型自省(introspection),并且 printf不是魔法。签名如下:

int printf(const char *format, ...);

除非您在格式字符串中指定,否则它不知道您正在传递什么。您还应该记住,可变参数函数没有类型安全性;你可以传递任何你想要的东西。例如,虽然 printf("%s", 1729);可能会导致崩溃,它在语言级别上是技术上有效的代码,并且历史上编译器毫无疑问地接受了此类代码。如今,许多编译器都能够确保格式字符串与您实际传递给它们的内容相匹配,但这是一个扩展,而不是 C 本身的一部分。

关于c语言%f变量,f后面是数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53035646/

相关文章:

C 中具有负索引的数组的 Calloc

c - 枚举常量的翻译限制

c - 管理 Code::Blocks 中的默认头文件目录

python - 记录循环生成的数字

java - 最欣赏的传输静态值的方式?

mysql - mysql 触发器中的 IF 语句触发错误

c++ - 我似乎找不到声明 char a[] 和 char b[] 的适当方法

c - 如何以与终端无关的方式使用 terminfo 正确打印特殊键序列?

C - 返回指向数组的指针

java - 必须指定 L 表示 long、F、D 表示 float、double 的原因