C语言中,printf函数对整型,浮点型,字符型使用不同占位符(%d, %f, %c, %s)输出的研究
C语言中,printf函数对整型,浮点型,字符型使用不同占位符(%d, %f, %c, %s)输出的研究
目录
注意:
定义的类型与输出的类型要对应。
1.1 占位符
格式说明由“%”和格式字符组成,如%d%f等。它的作用是将输出的数据转换为指定的格式输出。格式说明总是由“%”字符开始的。
格式字符有d,o,x,u,c,s,f,e,g等。如%d整型输出,%ld长整型输出,%o以八进制数形式输出整数,%x以十六进制数形式输出整数,或输出字符串的地址。%u以十进制数输出unsigned型数据(无符号数)。注意:%d与%u有无符号的数值范围,也就是极限的值,不然数值打印出来会有误。%c用来输出一个字符,%s用来输出一个字符串,%f用来输出实数,以小数形式输出,默认情况下保留小数点6位。%.100f用来输出实数,保留小数点100位。%e以指数形式输出实数,%g根据大小自动选f格式或e格式,且不输出无意义的零。
1.2 字符型用%d打印和整型用%c打印
打印出对应ASCII码值。
例子:
void test05() {
char ch1 = 'a';
int a = 65;
double b = 1.3;
printf("ch1 = %c\n", ch1);
printf("ch1 = %d\n", ch1);
printf("a = %d\n", a);
printf("a = %c\n", a);
}
结果:
ch1 = a
ch1 = 97
a = 65
a = A
1.3 整型(%d)与浮点型(%f)
不能混用。
例子:
//test %d, %f
void test06() {
int a = 65;
double b = 1.3;
printf("a = %d\n", a);
printf("a = %.2f\n", a);
printf("b = %.2f\n", b);
printf("b = %d\n", b);
}
结果:
a = 65
a = 0.00
b = 1.30
b = -858993459
1.4字符(%c)与字符串(%s)
(1)字符(%c)形式打印字符串
打印字符printf语句输入的是值,打印字符串,输入的是地址。用%s的形式打印字符会报错
例子:
//test %c, %s
void test07() {
char ch1 = 'w';
char str2[3] = "go";
printf("ch1 = %c\n", ch1);
printf("str2[0] = %c\n", str2[0]);
printf("ch1 = %s\n", &ch1);
printf("str2 = %s\n", str2);
}
结果:
ch1 = w
str2[0] = g
ch1 = w烫烫<
肄瘥?
str2 = go
(2)打印字符串(%s)
注意事项:
①遇到'\0'结束
②对于没有’\0’的字符数组,当实际赋值的长度小于定义的长度时,打印实际的长度;当实际赋值的长度等于定义的长度时,打印乱码。
③对于没有填满的字符数组,打印数组的长度
例子:
//test printf with %s
void test04() {
char str1[3] = "we";
char str2[2] = {'g', '0'};
char str3[4] = {'w', 'e'};
printf("str1 = %s\n", str1);
printf("str2 = %s\n", str2);
printf("str3 = %s\n", str3);
}
结果:
str1 = we
str2 = g0烫烫烫烫烫we
str3 = we
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!