当前位置:   article > 正文

【C语言】printf函数的超详细解读

printf

在这里插入图片描述


前言

当我们开始学习c语言时,我们接触到的第一个代码运行结果大概是这样的吧!
在这里插入图片描述
完成这样的代码仅需用到一个简单的函数 printf(),但就是这样一个函数有时也让人摸不着头脑,毕竟要想活用它,也要用心专研一下。


printf函数的组成

int printf( const char *format [, argument]… );
参数部分:格式表列 + 输出表列
返回值:输出的字符个数


一、返回值

注意是输出的字符
转义字符 = 1个字符
中间的两个双引号及其中间的空格不做计算,至于其作用下面会介绍

在这里插入图片描述

二、参数之格式控制

2.1、常见的转换说明及解释

转换说明输出
%d有符号十进制整数
%f有符号的十进制浮点数,属于double类型
%c单个字符
%s字符串
%e(可大写)浮点数,e计数法
%p打印地址
%u打印无符号十进制整数
%x(可大写)打印十六进制整数
%o打印八进制整数
%%打印一个%

对于上述两个可大写的转换说明,其大小写区别如下:
%x
小 10 对应 a
在这里插入图片描述
大写 10 对应 A
在这里插入图片描述
%e同理
在这里插入图片描述
在这里插入图片描述


2.2、常见的修饰符及解释

字母意义
h与整型转换类型说明一起用,表示short int 和 unsigned int类型的值,如%hd, %hu
hh与整型转换类型说明一起用,表示signed char和 unsigned char类型的值,如%hhd, %hhu
l与整型转换类型说明一起用,表示long int 和 unsigned long int类型的值,如%ld,%lu
ll与整型转换类型说明一起用,表示long long int 和 unsigned long long int 类型,如%lld, %llu
L与浮点型转换说明一起使用,表示long double类型,如%Lf
z与整型转换类型说明一起用,表示size_t (即unsigned int),是sizeof的返回类型
标记-,+,#,0,空格
数字用于%m.n+(修饰符)+转换类型,m和n为整数

解释:

  1. 结合修饰符和转换类型发现没有表示float类型?
    printf在打印浮点数时,float类型自动转换为double类型,%f,%lf,都是double类型,所以并没有float的专用转换说明

数字

但我们打印数据时,有时需要对数据进行精度控制,以及数据所占格数。而这就要用到数字
数字的输入可以归为 “m.n”,m,n均为整数,且二者可以只存在其中一个,如%8.2d: m=8, n=2,%.3f:m不存在,n = 3

  • m - 给点的字段宽度,如果给定的字段宽度小于实际宽度,则以实际为准
    在这里插入图片描述
  • n - 对应整型:无影响;对浮点数:保留n位小数;对字符串:截取前n个字符打印
    在这里插入图片描述

标记

负号(-):将打印项左对齐
在这里插入图片描述
在这里插入图片描述
+:有符号的值,若为正数,则前面显示+,若为负数则前面显示-
在这里插入图片描述
#:对于%x,%X,是将前置0x加上,%o是将前置0加上,
在这里插入图片描述
在这里插入图片描述
0:对于数值格式,用前导0代替空格填充字段宽度,对于整数格式,如果出现-和制定精度,则忽略该标记
在这里插入图片描述
在这里插入图片描述
空格:对于有符号值,若为正,则在值前显示前导空格,若为负,则在值前显示-
在这里插入图片描述


2.3、打印一般字符

对于下列字符打印需要用到转义字符
在这里插入图片描述


三、参数之输出表列

  • 输出表列即可以是:变量,也可以是常数
    在这里插入图片描述
  • 输出表列应与格式控制里的类型转换一一对应
    在这里插入图片描述
    **在这里只做浅显的解释: **
    不同的系统,不同的编译器参数传递的方式并不完全相同,笔者采用的是64位,windows,vs2022想细致的了解,则需要知晓数据在内存中的存储相关的知识,这里不做过多解释
    在这里插入图片描述
    作为初学者应保证,数据类型与转换说明是一一对应的。

最后,望各位未来的编程大佬点个小小的赞!
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码维护者/article/detail/62579
推荐阅读
  

闽ICP备14008679号