2.4.1 printf函数
与add函数一样,printf也是一个函数,但它不是一个自定义函数,而是一个系统自带的函数。
我们将字符串常量"Hello World\n"传递给了printf函数。在运行代码时,你可以在屏幕上看到这行字符串。显然,printf函数的作用就是将字符串输出到控制台上。
printf由单词print(打印)和单词format(格式)的首字母f组成,意为格式化打印。
早期,计算机的输出主要通过连接打印机在纸张上打印字符来实现。如今,计算机的大部分输出都是在屏幕上实现的。然而,单词print仍被保留下来。有时我们仍然使用“打印”一词,但实际上,我们是在屏幕的控制台中输出字符的。
让我们来看以下两行代码。
printf("Hello World\n"); printf("%d", result);
为什么在第一行代码中只向printf传递了一个参数,而在add函数中却向它传递了两个参数?函数定义的参数数量和类型是否需要与函数调用时保持一致?
因为printf函数是一个特殊的函数,即可变参数函数,所以可以接收可变数量和类型的输入参数。现在,你不需要过多地关心如何编写可变参数函数,只需要使用它即可。
以下是printf函数的一些用法示例。
打印一个整数:printf("%d", 整型int);
printf("%d", 12345);
用于打印两个整数:printf("%d\n%d\n", 整型int1, 整型int2);
printf("A=%d\nB=%d\n", 123, 456);
根据以上示例,可以总结出printf的使用公式。
printf("XXX占位1 XXX 占位2 XXX占位3", 替换1, 替换2, 替换3);
根据上面的公式,让我们逐一解释。
(1)printf函数的第一个参数必须是字符串,在这里,我们传入了一个字符串常量(用双引号括起来)。在之前的HelloWorld和add函数的示例中,第一个参数都是字符串常量。
(2)在字符串常量中,可以包含占位符。例如,整型int的占位符是%d。占位符的含义是显而易见的,因为它们占据了特定的位置,并被后面的参数依次替换。查看图2.22,图中箭头标示了如何进行替换,并在控制台上输出了替换的结果。
图2.22 printf函数的示例