格式占位符 与 数据类型
总结:
1、char 类型可以用 %c ,也可以用 %d 【由于char(字符类型)本质就是一个字节的整数】
2、布尔类型(bool)是 int 的别名,所以格式占位符也是 %d
3、size_t类型是:无符号整数值,本身格式占位符为%zu,也可以用%d
一、格式占位符与数据类型的搭配使用
1、整型
如下:
- char 、bool、size_t 都可以与 %d搭配使用
- size_t 可以看作是整型的别名
- %d 可以与所有整型使用,不过宽类型(long,long long)会出现精度损失
2、浮点类型
如下:
- 输出(printf)时,float、double 可以共用 %f,不过输入(scanf)时,必须要一一对应,要不会报错
二、格式占位符
1、不同进制输出格式占位符
%d :十进制整数。
%x :十六进制整数。
%#x :显示前缀 0x 的十六进制整数。 ——x的大小写
%#X :显示前缀 0X 的十六进制整数。
2、整数类型的格式占位符(都是十进制形式的格式占位符)
数据类型 | 格式占位符 | 数据类型 | 格式占位符 |
---|---|---|---|
int | %d | unsigned int | %u |
short | %hd | unsigned short | %hu |
long | %ld | unsigned long | %lu |
long long | %lld | unsigned long long | %llu |
注:1、布尔类型(bool)是 int 的别名,所以格式占位符也是 %d
2、size_t类型是:无符号整数值
3、字符
(1)字符类型的格式占位符:使用 %c 表示 char类型
(2)字符串的格式化占位符:使用 %s 表示字符串类型的占位符
4、浮点类型的格式占位符
数据类型 | 十进制形式格式占位符 | 科学计数法格式占位符 |
---|---|---|
float | %f | %e |
double | %lf | %le |
long double | %Lf | %Le |
5、size_t的格式化占位符
sizeof返回一个size_t类型的无符号整数值,格式占位符是 %zu。
6、使用 printf 输出一个内存地址
可以使用占位符 %p
三、数据类型
基本数据类型
1、整数:int, short, long, long long ——目前只讨论整数(整数+char)的无符号类型
2、浮点:double, flout, long double
3、字符:char ——会讨论 无符号类型
函数及其他数据类型
1、size_t:①strlen(str) 返回str的长度,类型是 size_t
②sizeof:可以获取数据类型或变量、字面量的存储大小,单位是字节。
2、下述关于时间的函数,变量都需是time_t 类型
time(&变量) 获取当前日期赋值到变量中,该变量需是 time_t 类型
ctime(&时间值) 将时间戳转为字符串并返回,时间值需是 time_t 类型
difftime(时间值1,时间值2) 返回两个时间值的差,返回值是 double 类型,时间值需是 time_t 类型
int 类型的别名
1、布尔类型(bool)是 int 的别名
2、uint _t ——需要与头文件<stdint.h>配合使用
int8_t:8个二进制位1个字节的整数
int16_t:2个字节的整数
int32_t:4字节的整数
uint8_t:8个二进制位 1个字节的无符号整数
——为了增加数据类型的可移植性
注:size_t类型是:无符号整数值
附录
常用格式占位符速查表
(1)整数
格式占位符 | 含义 | 对应类型 |
---|---|---|
%d | 十进制有符号整数 | int |
%u | 十进制无符号整数 | unsigned int |
%hd | 十进制有符号整数 | short |
%hu | 十进制无符号整数 | unsigned short |
%ld | 十进制有符号整数 | long |
%lu | 十进制无符号整数 | unsigned long |
%lld | 十进制有符号整数 | long long |
%llu | 十进制无符号整数 | unsigned long long |
%x / %X | 十六进制无符号整数 | unsigned int |
%#x | 显示前缀 0x 的十六进制整数,用于输出。 | unsigned int |
%#X | 显示前缀 0X 的十六进制整数,用于输出。 | unsigned int |
%zu | 输出数据的字节长度 | size_t |
(2)浮点
*格式占位符* | *含义* | *对应类型* |
---|---|---|
%f | 浮点数的常规表示 | float、double |
%lf | 浮点数的常规表示 | double |
%Lf | 浮点数的常规表示 | long double |
%e | 浮点数的科学计数法表示 | double、float |
%le | 浮点数的科学计数法表示 | double |
%Le | 浮点数的科学计数法表示 | long double |
(3)字符和字符串
*格式占位符* | *含义* | *对应类型* |
---|---|---|
%c | 字符 | char |
%s | 字符串 | char *、char[] |
(4)其他
*格式占位符* | *含义* | *对应类型* |
---|---|---|
%p | 输出地址,通常以十六进制表示 | void * |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)