C语言中的格式化输出符号:%d %c %p %x等

文章目录

  • 概览
  • %d
  • %c
  • %d和%c的区别
  • %p
  • %x %X
  • 输出浮点数
  • 参考

概览

C语言中的格式化输出符号有很多,以下是一些常见的:

%d 或 %i:用于输出十进制整数。
%u:用于输出无符号十进制整数。
%f:用于输出浮点数。
%s:用于输出字符串。
%c:用于输出字符。
%p:用于输出指针。
%x 或 %X:用于输出十六进制数,%x表示输出小写字母,%X表示输出大写字母。
%o:用于输出八进制数。
%e 或 %E:用于输出科学计数法表示的浮点数。
%g 或 %G:用于输出浮点数,但是没有无意义的零。
这些格式化输出符号可以在printf函数的格式字符串中使用,用来指定输出的格式。

%d

%d是C语言中的格式化输出符号,用于将整数值按照十进制格式输出到标准输出流(通常是控制台)。它可以用于printf函数中的格式化字符串中,指示要输出的整数的位置和格式。例如,"%d"可以用来输出一个整数变量的值。

%c

%c是C语言中的格式化输出符号,用于输出字符。在printf函数中,%c可以用来输出一个字符变量的值。在你的代码中,如果你想打印出数组元素的字符表示,你可以使用%c。

#include <stdio.h>

int main() {
    unsigned char array[16];
    for (int i = 130; i < 146; i++)
    {
        array[i] = i;
        //打印数组的每个元素的地址和值
        printf("array[%d] address is %p, value is %c\n", i, &array[i], array[i]);
        
    }
    // 
    return 0;
}

printf("array[%d] address is %p, value is %c\n", i, &array[i], array[i]);

这将会打印出数组元素的字符表示,而不是整数值。
输出:

array[130] address is 000000000061FE82, value is é
array[131] address is 000000000061FE83, value is â
array[132] address is 000000000061FE84, value is ä
array[133] address is 000000000061FE85, value is à
array[134] address is 000000000061FE86, value is å
array[135] address is 000000000061FE87, value is ç
array[136] address is 000000000061FE88, value is ê
array[137] address is 000000000061FE89, value is ë
array[138] address is 000000000061FE8A, value is è
array[139] address is 000000000061FE8B, value is ï
array[140] address is 000000000061FE8C, value is î
array[141] address is 000000000061FE8D, value is ì
array[142] address is 000000000061FE8E, value is Ä
array[143] address is 000000000061FE8F, value is Å
array[144] address is 000000000061FE90, value is É
array[145] address is 000000000061FE91, value is æ

%d和%c的区别

在这里插入图片描述

%p

在C语言中,%p是一种格式化输出的转换说明符,用于打印指针变量的值。例如,下面的代码使用%p打印一个指向整数的指针变量p的值:

int num = 42;
int *p = &num;
printf("The value of p is %p\n", p);

输出为:

The value of p is 0x7ffee1d7e9ac

%p打印出的是指针变量p的十六进制地址。

%x %X

在C语言中,我们可以使用转换说明符 %x%X 来打印十六进制数。

%x 会将小写字母用于小于等于10的数字以及大写字母用于大于10的数字,而 %X 则全部使用大写字母。

下面是一个示例代码:

int num = 255;
printf("num in hex is %x\n", num);  // 输出 "num in hex is ff"
printf("num in HEX is %X\n", num);  // 输出 "num in HEX is FF"

%x%X 都只能用于输出 unsigned int 或者 unsigned long 类型的数据,如果使用 %x%X 输出其他类型的数据,将会导致未定义的行为。

输出浮点数

在C语言中,可以使用%f%e%g%E%G作为格式化输出符号来输出浮点数。

  • %f:按固定点表示法打印浮点数。
  • %e%E:按科学计数法打印浮点数。%e使用小写字母(例如,3.14159e+00),%E使用大写字母(例如,3.14159E+00)。
  • %g%G:根据值的大小,printf函数决定使用固定点表示法或科学计数法。%g使用小写字母,%G使用大写字母。

例如:

float num = 3.14159;
printf("The value of num is %f\n", num);
printf("The value of num is %e\n", num);
printf("The value of num is %g\n", num);

这将分别以固定点表示法,科学计数法和自动选择的方式打印出浮点数。

参考

《C Primer Plus》

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/211005.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux - 进程间通信

进程通信 初步理解进程通信 所谓进程之间的通信&#xff0c;就是两个进程之间的 数据层面的交互。 我们之前说过&#xff0c;父子进程之间是有一些数据通信的&#xff0c;子进程可以看到一些父进程 允许 子进程访问的数据&#xff0c;比如 父进程的 环境变量&#xff0c;子…

来CSDN一周年啦!!!

各位CSDN的uu们你们好呀&#xff0c;今天是小雅兰来到CSDN创作的一周年啦&#xff0c;时间&#xff0c;说长不长&#xff0c;说短也不短&#xff0c;在这一年中&#xff0c;我认为我也收获了一些很有价值的东西吧&#xff01;&#xff01; 一周年了&#xff0c;该创作的还得继续…

Android 应用资源概览

关于作者&#xff1a;CSDN内容合伙人、技术专家&#xff0c; 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 &#xff0c;擅长java后端、移动开发、商业变现、人工智能等&#xff0c;希望大家多多支持。 目录 一、导读二、概览三、资源类型分组四、配置限定符名称表…

【Unity入门】声音组件AudioSource简介及实现声音的近大远小

AudioSource组件 将需要播放声音的物体挂载Audio Listener组件&#xff0c;实现声音的播放 AudioSource组件属性 &#xff08;1&#xff09;AudioClip&#xff08;音频剪辑&#xff09;&#xff1a;指定播放的音频文件。 &#xff08;2&#xff09;Output&#xff08;音频输…

Paxos 算法

Paxos 算法 介绍 Paxos 算法是第一个被证明完备的分布式系统共识算法。共识算法的作用是让分布式系统中的多个节点之间对某个提案&#xff08;Proposal&#xff09;达成一致的看法。提案的含义在分布式系统中十分宽泛&#xff0c;像哪一个节点是 Leader 节点、多个事件发生的…

使用mybatis-plus框架:@Autowired报错Could not autowire. No beans of ‘XXX‘ type found

使用mybatis-plus框架,使用xxmapper报错&#xff1a; 解决办法是&#xff1a;在mapper中添加注解&#xff1a; Repository Mapper 也可以使用 AutowiredSysRoleMenuService sysRoleMenuService;替代 AutowiredSysRoleMenuMapper sysRoleMenuMapper;方法名不同&#xff0c;但…

RHCE学习笔记(RHEL8) - RH294

Chapter Ⅰ 介绍Ansible ansible ansible是一款开源自动化平台 ansible围绕一种无代理架构构建&#xff0c;在控制节点上安装ansible&#xff0c;且客户端不需要任何特殊的代理软件&#xff1b;ansible使用SSH等标准协议连接受管主机&#xff0c;并在受管主机上运行代码或命令来…

【嵌入式-51单片机】常见位运算和数据类型

51单片机中 数据类型如下&#xff1a; 位运算符如下&#xff1a; 按位左移<<&#xff1a;低位补零&#xff0c;高位移出 按位右移>>&#xff1a;高位补零&#xff0c;低位移出 按位与&&#xff1a;对应位上的值必须同时为1才为1&#xff0c;可以用来对指定位…

鸿蒙学习之TypeScript 语法理解笔记

1、变量及数据类型 // string&#xff1a;字符串&#xff0c;单引号或双引号 let msg : string hello wprld console.log(msg:msg)// number&#xff1a;数值、整数、浮点let num :number 21console.log(num:num)//boolean&#xff1a;布尔let finished: boolean truecons…

HarmonyOS 开发案例分享:万能卡片也能用来玩游戏

一、前言 作为一名开发爱好者&#xff0c;从大了讲&#xff0c;我学习并进行 HarmonyOS 相关开发是为了能为鸿蒙生态建设尽一份绵薄之力&#xff0c;从小了讲&#xff0c;就是为了自己的兴趣。而万能卡片是一个让我非常感兴趣的东西。 很多时候我跟别人解释什么是万能卡片&…

Redis SDS 源码

底层数据结构的好处&#xff1a; 杜绝缓冲区溢出。减少修改字符串长度时所需的内存重分配次数。二进制安全。兼容部分C字符串函数。 常用命令&#xff1a; set key value、get key 等 应用场景&#xff1a;共享 session、分布式锁&#xff0c;计数器、限流。 1、给char*定义…

【排序】直接插入排序和希尔排序

目录 一、排序思想 1、直接插入排序 2、希尔排序 二、代码实现 三、性能比较 四、排序总结 1、直接插入排序 2、希尔排序 一、排序思想 1、直接插入排序 基本思想&#xff1a;把待排序的序列选取一个整数逐个插入到已经排好的有序序列中&#xff0c;直到所有整数都插入…

Unity 下载网络图片的方法,并把图片赋值给UI和物体的方法

Unity 下载网络图片的方法&#xff0c;可使用WWW类或UnityWebRequest类&#xff0c;其中UnityWebRequest是新版的方法。 通常我们下载图片都会转成Texture&#xff0c;然后赋值给UI或者物体。 具体实现方法&#xff1a; using System.Collections; using System.Collections…

P1 什么是链表 C语言简单易懂

目录 前言 01 什么是链表 02 数组的特点 03 数组的缺点 3.1 删除数组其中一个元素 3.2 数组增加某个节点 04 链表 前言 &#x1f3ac; 个人主页&#xff1a;ChenPi &#x1f43b;推荐专栏1: 《 C 》✨✨✨ &#x1f525; 推荐专栏2: 《 Linux C应用编程&#xff08;概念…

国际语音群呼系统

随着海外电话营销的发展&#xff0c;越来越多的出海企业通过国际语音群呼系统打开出海营销之路。企业出海营销运营&#xff0c;选择一个安全、高效、便捷的国际语音群呼系统非常重要。 一、什么是国际语音群呼系统&#xff1f; 国际语音群呼是指通过语音的方式批量向海外用户传…

【设计模式-4.1】行为型——策略模式

说明&#xff1a;本文介绍设计模式中的行为型设计模式中的&#xff0c;策略模式&#xff1b; 计算器 策略模式属于行为型设计模式&#xff0c;关注对象的行为。例如&#xff0c;目前有一个计算器类&#xff0c;可对两个数进行加减计算&#xff0c;如下&#xff1a; &#xf…

中国湖泊面积-水位长时序数据产品(2000-2020)

今天我们分享中国湖泊面积-水位长时序数据产品&#xff08;2000-2020&#xff09; 该数据集包含中国典型湖泊2000-2020年最大水体面积、多年平均面积、水位变化速率及空间分布矢量。 数据溯源信息 「数据来源描述」Landsat、HJ、ZY、Jason、ENVISAT、Cryosat、ICESat和HY 「数…

【Linux】信号概念和信号的产生

文章目录 一、什么是信号&#xff1f;1.signal系统调用2.从硬件解析键盘数据如何输入给内核3.同步和异步 二、信号的产生1.键盘组合键2. kill命令3.系统调用接口3.1kill3.2 raise3.3abort 4.异常5.软件条件 重谈core dump标志位 一、什么是信号&#xff1f; 以日常为例&#x…

lv11 嵌入式开发 中断处理 15

前言&#xff1a;中断属于7种异常的1种&#xff0c;这节主要讲CPU接收到中断之后怎么处理&#xff0c;回顾之前的知识。 目录 1 异常 1.1 概念 1.2 异常处理机制 1.3 ARM异常源 1.4 异常模式 1.5 ARM异常响应 1.6 异常向量表 1.7 异常返回 ​编辑 1.8 IRQ异常举例 …

Android 缩减、混淆处理和优化应用

为了尽可能减小应用的大小&#xff0c;您应在发布 build 中启用缩减功能来移除不使用的代码和资源。启用缩减功能后&#xff0c;您还会受益于两项功能&#xff0c;一项是混淆处理功能&#xff0c;该功能会缩短应用的类和成员的名称&#xff1b;另一项是优化功能&#xff0c;该功…