Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c语言%f变量,f在数字之后_C_Variables_Declare - Fatal编程技术网

c语言%f变量,f在数字之后

c语言%f变量,f在数字之后,c,variables,declare,C,Variables,Declare,我想知道为什么有必要写作。 我知道如果我想对机器进行具体说明,就需要在一个数字后面写f,但是当我在同一行声明变量是f时,为什么我需要这样做呢 希望我能说清楚,并感谢您的帮助 数字后面的f是使其成为浮点而不是双精度。在C中,3.14是双精度的,而3.14f是浮动的。类似地,您可以附加u和l以使数字无符号和/或长;e、 例如,42U是无符号整数,42L是长型,42UL是无符号长型,42ULL是无符号长型 %f是一个格式说明符,用于告诉函数变量的类型。C实际上没有原生类型的内省,printf也不是魔术

我想知道为什么有必要写作。 我知道如果我想对机器进行具体说明,就需要在一个数字后面写f,但是当我在同一行声明变量是f时,为什么我需要这样做呢


希望我能说清楚,并感谢您的帮助

数字后面的f是使其成为浮点而不是双精度。在C中,3.14是双精度的,而3.14f是浮动的。类似地,您可以附加u和l以使数字无符号和/或长;e、 例如,42U是无符号整数,42L是长型,42UL是无符号长型,42ULL是无符号长型

%f是一个格式说明符,用于告诉函数变量的类型。C实际上没有原生类型的内省,printf也不是魔术。签名看起来像:

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

除非您在格式字符串中指定它,否则它不知道您正在传递什么。您还应记住,可变功能没有类型安全性;你可以传递任何你想要的东西。例如,printf%s,1729;这是完全可以接受的。有些编译器能够确保格式字符串与您实际传递的字符串相匹配,但这只是一个扩展,不是C本身的一部分。

非常感谢您的评论!