我开始从C学习C++.最近,我刚读了一本关于C++的教程.在" 介绍流 "一节中,本书注意到:
<<运算符被重载,因此右侧的操作数可以是字符串或任何原始值.如果此操作数不是字符串,则<<运算符在将其发送到输出流之前将其转换为字符串形式.
所以我想知道printf()C中的函数是否具有相同的效果.如果没有,请告诉我他们两者之间的差异.
好吧,当然它必须以某种方式生成每个参数的字符串表示,这是为了打印一些东西所需要的.打印包括将字符流发送到输出设备,除非您有一系列字符,否则无法打印.
该printf()函数使用格式化字符串来控制如何解释每个参数以创建字符表示,以及如何在输出时格式化该表示.
请注意,当然可以在外部看到参数的"转换".不可能
printf("%d\n", 47);
Run Code Online (Sandbox Code Playgroud)
可以把它47变成一个到位的字符串; C使用值调用,因此函数只获取值的副本,然后使用%d转换说明符中隐含的类型信息来确定如何生成两个字符'4'并'7'组成打印的表示.