C语言中 printf函数格式化输出

一.  简介

本文来简单学习一下,C语言中printf函数格式化输出时,因为我们的粗心没有 将数据类型与格式化参数对应,而导致的一些问题。

二.  C语言中printf函数的格式化输出

在C语言中,printf函数是用于格式化输出的函数,它不会进行隐式类型转换。

隐式类型转换通常是编译器在需要时自动进行的,而不需要程序员手动指定。另外,开发者也可以对数据进行强制类型转化。

如果你尝试使用printf输出不同类型的数据,但提供的格式化字符串与实际传入的参数类型不匹配,你的程序可能会遇到未定义行为。这是因为printf 函数依赖于你提供的格式化字符串,从来确定如何解释传入的参数内存。

例如,如果你尝试使用 %d 格式化字符串来输出一个浮点数,printf 函数将不会进行隐式类型转换,而是会读取浮点数内存中的一部分作为整数,这将导致不正确的输出或程序崩溃。

为了避免这种情况,你应该确保传递给 printf函数的参数类型,与你在格式化字符串中指定的类型相匹配,如果需要,可以手动进行显式类型转换。

例如如下代码,当以浮点格式 "%f"打印一个整型数据时,就会出错:

#include <stdio.h>int main(void) 
{int a = 2;printf("%f\n", a);return 0;
}

输出结果如下:

可以看出,这里输出出错了。

总结:

C语言中,printf 函数不会进行任何类型转换,只是按照你给的格式从内存读取值。
在计算机中,printf 函数去访问读取内存数据时,访问读取浮点数和访问读取整数的寄存器是不一样的。

printf不安全,类型不安全,要是类型不对了,也许程序就崩溃了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis 异常三连环

本文针对一种特殊情况下的Reids连环异常&#xff0c;分别是下面三种异常&#xff1a; NullPointerException: Cannot read the array length because “arg” is nullJedisDataException: ERR Protocol error: invalid bulk lengthJedisConnectionException: Unexpected end o…

NAT端口映射,实现外网访问内网服务器

目录 前言一、搭建网络拓扑1.1 配置server和pc1.1.1 配置server01.1.2 配置server11.1.3 配置pc0 1.2 配置客户路由器1.2.1 配置路由器IP1.2.2 配置静态路由 1.3 配置ISP路由器 二、配置端口映射2.1 在客户路由器配置端口映射2.2 测试公网计算机访问私网服务器2.2.1 PC0向serve…

Base64前端图片乱码转换

title: Base64码乱转换 date: 2024-06-01 20:30:28 tags: vue3 后端图片前端显示乱码 现象 后端传来一个图片&#xff0c;前端能够接收&#xff0c;但是console.log()后发现图片变成了乱码&#xff0c;但是检查后台又发现能够正常的收到了这张图片。 处理方法 笔者有尝试将…

dotenv 配置踩坑-显示undefined

今天在学习dotenv,结果自己按照官方文档巧下来竟然还是不行&#xff0c;人麻了~ 这是我的目录结构 按照配置那么&#xff0c;我们只需要在config.default.js中写入如下代码就可以实现它将环境变量从文件加载到process.env中。 但是&#xff0c;但是这里犯了一个低级错误&#…

通用高电子迁移率晶体管(HEMT)的差分微变解算方案及分析型模型

来源&#xff1a;A Difference-Microvariation Solution and Analytical Model for Generic HEMTs&#xff08;TED 22年&#xff09; 摘要 这篇论文提出了一种AlGaN/GaN和AlGaAs/GaAs基高电子迁移率晶体管(HEMT)的分析型直流模型。该模型考虑了高栅偏压下势垒层中积累的电荷。…

什么?!这年代还有人用父子组件通信?

创作背景 因为本前端菜鸟写代码从没考虑过代码是否易于维护&#xff0c;所以一旦涉及组件通信&#xff0c;一律使用Pinia状态管理&#xff0c;至于父子组件通信啥的&#xff0c;学完Pinia之后就被我狠狠抛弃了&#xff0c;当时就在想&#xff1a;为什么不直接教Pinia&#xff…

YOLO-Worldv2两分钟快速部署

本次部署使用的框架基于ultralytics&#xff0c; 并且已经集成最新版本的YOLOv8框架&#xff1a; 一键环境配置 pip install ultralytics基础使用 训练 from ultralytics import YOLOWorld model YOLOWorld(yolov8x-worldv2.pt) results model.train(datacoco8.yaml, epo…

康谋技术 | 自动驾驶:揭秘高精度时间同步技术(一)

众所周知&#xff0c;在自动驾驶中&#xff0c;主要涵盖感知、规划、控制三个关键的技术层面。在感知层面&#xff0c;单一传感器采集外界信息&#xff0c;各有优劣&#xff0c;比如摄像头采集信息分辨率高&#xff0c;但是受外界条件影响较大&#xff0c;一般缺少深度信息&…

算法导论 总结索引 | 第三部分 第十四章:数据结构的扩张

1、通过存储 额外信息的方法来扩张一 种标准的数据结构&#xff0c;然后对这种数据结构&#xff0c;编写新的操作来支持所需的应用。因为添加的信息 必须要能被该数据结构上的常规操作更新和维护 2、通过扩张红黑树构造出的两种数据结构&#xff1a;14.1介绍 一种支持一般动态…

从迷茫到精通,小李的IPD培训‘逆袭’之路!——精益咨询

谈及IPD培训&#xff0c;这确实是一个让小李心生敬畏而又充满期待的词汇。作为刚刚踏上这段“奇幻”旅程的小白&#xff0c;小李深感其不仅是一场知识的狂欢&#xff0c;更是一次思维的洗礼和团队的熔炼。 IPD&#xff0c;全称集成产品开发&#xff0c;它代表着一种前沿的产品…

使用 Node.js 和 Azure Function App 自动更新 Elasticsearch 索引

作者&#xff1a;来自 Elastic Jessica Garson 维护最新数据至关重要&#xff0c;尤其是在处理频繁变化的动态数据集时。这篇博文将指导你使用 Node.js 加载数据&#xff0c;并通过定期更新确保数据保持最新。我们将利用 Azure Function Apps 的功能来自动执行这些更新&#xf…

云计算百科:类型、服务与业务优势一网打尽

了解云计算的权威指南是至关重要的&#xff0c;掌握云计算的类型、服务、用途以及它们如何为组织带来好处尤为重要。 假设某公司的员工正在办公室工作&#xff0c;突然间火警响起&#xff0c;原来IT部门的主服务器机房着火了&#xff0c;所有服务器都受到了影响。这一消息引发…

新一代企业共享服务中心,开启企业智慧管理决策新纪元

随着数字化浪潮加速来袭&#xff0c;企业面临着与以往全然不同的挑战与机遇。 业务与人员的增长致使服务请求与日俱增&#xff0c;业务类型愈加复杂&#xff0c;大量来自不同业务线的服务请求使内部服务压力增加。业务激增后只得依赖更多资源投入&#xff0c;势必掣肘服务效率。…

CSS函数: 实现数据限阈的数字函数

CSS函数中提供了几个比较实用的数字函数&#xff0c;它可以帮助我们实现一定的数学计算功能。常见的数字函数目前提供了五个&#xff1a;calc()、max()、min()和clamp()函数。其基本实现功能如下&#xff1a; calc()&#xff1a;允许在声明 CSS 属性值时执行一些计算。max()&a…

eNSP学习——配置RIPv2认证

目录 主要命令 原理概述 实验目的 实验内容 实验拓扑 实验编址 实验步骤 1、基本配置 2、搭建RIP网络 3、模拟网络攻击 4、配置RIPv2简单验证 5、配置RIPv2 MD5密文验证 需要eNSP各种配置命令的点击链接自取&#xff1a;华为&#xff45;NSP各种设备配置命令大全PD…

通过LabVIEW提升生产设备自动化水平

现代制造业对生产设备的自动化水平提出了越来越高的要求。使用LabVIEW这一强大的图形化编程环境&#xff0c;可以显著提升生产设备的自动化程度&#xff0c;改善生产效率和产品质量。本文将详细分析如何通过LabVIEW改善生产设备的自动化水平&#xff0c;并提供具体的实施策略与…

SpringBoot社区配送服务系统小程序-计算机毕业设计源码88705

摘要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;社区当然也不例外。社区配送服务系统小程序是以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;采…

alist配合onlyoffice 实现在线预览

alist配合onlyoffice 实现在线预览 文章目录 alist配合onlyoffice 实现在线预览一、安装onlyoffice二、增加view.html文件三、安装nginx&#xff0c;并增加conf配置文件四、alist预览配置增加 一、安装onlyoffice 我是采用docker安装&#xff0c;采用的版本是7.2&#xff0c; …

安装Acunetix

Acunetix是一个自动化的Web应用程序安全测试工具&#xff0c;可以扫描任何可通过Web浏览器访问的和遵循HTTP/HTTPS规则的Web站点和Web应用程序&#xff0c;提供全面的漏洞扫描服务&#xff0c;并生成响应的报告 # 1. 安装 代码语言&#xff1a;javascript 复制 [rootwhcode…

高效管理近30万稳定运力,科技物流企业万联易达这样做

万联易达物流科技有限公司&#xff08;以下简称“万联易达”&#xff09;&#xff0c;是由中泽集团投资设立的创新型物流科技企业。为提高平台数智化服务水平&#xff0c;提升业务开展效率&#xff0c;达到运输全场景合规化管理&#xff0c;万联易达平台引用法大大电子合同&…