一.输出语句printf:
1.前言:
输出常量,很明显要用到printf函数,很多人会认为打印一个整型常量或打印一个实型常量等直接写printf(23)、printf(18.123)即可,实际上这么写不对,原因就涉及到printf函数了。
2.printf表示输出语句:
3.printf细节:
如下图,在C语言中有规定,输出的内容中是由两部分组成的:
第一部分即参数1是必填的:表示输出内容的最终样式是以字符串的形式体现的;
第二部分即参数2是选填的:表示填补的内容。
4.例一:打印(输出)字符串
以之前的printf("Hello World!");为例,
其中Hello World!就是要展示的最终样式,而且这个样式是固定的,不需要再进行任何的填补与修改,
所以直接使用Hello World!即参数1即可,参数2就不需要再写了,
最终的运行结果为Hello World!。
5.例二:打印(输出)常量
仍要用到printf函数:
其中在printf的第一个参数中是输出内容的最终样式即告诉计算机我要输出什么,此时要输出整数,
因此在这里直接写整数不就可以了么,实际上这里不能写整数这两个汉字,也不能写正整数、负整数和0,
而是要写C语言中已经约定好的格式控制符(占位符):
(decimal译为十进制的整数,floating-point译为浮点数即小数,character译为字符,string译为字符串)
因此比如要打印整数,printf的第一个参数要写成"%d",
此时printf的第二个参数就是要输出的整数是多少,比如要输出18,就应该写成printf("%d",18);,如下图:
同理,输出实型常量即浮点数,可以是printf("%f",1.93);,意味着告诉计算机要输出一个小数1.93,如下图:
比如要输出有意义的内容:printf语句中第一个参数里的%f表示要写一个小数,这个小数就是第二个参数里的内容即1,78
#include<stdio.h>
int main()
{
printf("我的身高是%f米",1.78); //运行结果为我的身高是1.780000米
return 0;
}
6.注意事项:
对于printf函数:
打印整型常量、实型常量等为什么不直接打印,如打印整型常量18,不写成printf(18);,而是写成printf("%d",18);呢?
这是因为printf的第一个参数表示输出的最终样式,这个样式可能是一长串文本,里面有中文、符号和数字等,所以第一个参数必须是以字符串的形式进行体现,如果是其他的类型,他是表示不了中文以及其他的文字,
对于printf("18");,虽然最终的打印结果为18,
但有一个弊端,如果要打印18加18的结果,就不能写printf("18+18");了,因为字符串里写数字只用于展示,不能用于计算,所以程序运行的结果为18+18,如果要打印18加18的结果,就需要算出结果为36,再打印出来即printf("36");,显然这很麻烦,因为求18加18的结果还要自己算,那么就没什么意义了(实际要让计算机算),因此这是不对的->
其实使用占位符就可以解决,解决方案如下:
printf函数的参数一中写%d,表示要输出一个整数,
参数二中写18+18,表示18加18的结果->
printf("%d", 18 + 18); //运行结果为36
总结:printf函数通常要结合占位符使用。
二.代码演示:
#include<stdio.h>
int main()
{
//输出常量
/*1.输出整数*/
printf("%d \n", 18 + 18); //运行结果为36
/*2.输出小数->默认保留小数点后六位*/
printf("%f \n", 1.78); //运行结果为1.780000
/*3.输出字符*/
printf("%c \n", 'A'); //运行结果为A
/*4.输出字符串*/
//4.1.方式一:printf函数里只需要写参数1里的内容,参数2不写
printf("Hello World! \n"); //运行结果为Hello World!
//4.2.方式二:使用占位符进行输出
printf("今天是:%s \n", "星期六"); //运行结果为今天是:星期六
return 0;
}
三.总结:
-
占位符:通俗地理解就是在打印的时候用占位符先占个位置,之后再用真实的数据填补