C 语言中的数据类型

C 中的变量必须是指定的数据类型,并且您必须在 printf() 函数中使用格式说明符来显示它:

// 创建变量
int myNum = 5; // 整数(没有小数点)
float myFloatNum = 5.99; // 浮点数
char myLetter = 'D'; // 字符 // 打印变量
printf("%d\n", myNum);
printf("%f\n", myFloatNum);
printf("%c\n", myLetter);

基本数据类型

数据类型指定了变量将存储的信息的大小和类型。

在本教程中,我们将重点关注最基本的类型:

数据类型 大小 描述
int 2 或 4 个字节 存储整数,没有小数点
float 4 个字节 存储包含一个小数或多个小数的数,足以存储 6-7 个小数位
double 8 个字节 存储包含一个小数或多个小数的数,足以存储 15 个小数位
char 1 个字节 存储单个字符/字母/数字,或 ASCII 值

基本格式说明符

每个数据类型都有不同的格式说明符。以下是一些:

格式说明符 数据类型 示例
%d 或 %i int printf("%d", myNum);
%f float printf("%f", myFloatNum);
%lf double printf("%lf", myDoubleNum);
%c char printf("%c", myLetter);
%s 用于字符串 printf("%s", myString);

设置小数精度

您可能已经注意到,如果您打印一个浮点数,输出将在小数点后显示许多位数:

float myFloatNum = 3.5;
double myDoubleNum = 19.99; printf("%f\n", myFloatNum); // 输出 3.500000
printf("%lf", myDoubleNum); // 输出 19.990000

如果您想要删除多余的零(设置小数精度),可以在点 (.) 后面跟着一个数字,指定小数点后应该显示的位数:

float myFloatNum = 3.5;

printf("%f\n", myFloatNum);  // 默认会显示小数点后 6 位
printf("%.1f\n", myFloatNum); // 只显示 1 位
printf("%.2f\n", myFloatNum); // 只显示 2 位
printf("%.4f", myFloatNum); // 只显示 4 位

真实例子

以下是一个使用不同数据类型计算和输出一定数量的物品的总成本的实际例子:

// 创建不同数据类型的变量
int items = 50;
float cost_per_item = 9.99;
float total_cost = items * cost_per_item;
char currency = '$'; // 打印变量
printf("Number of items: %d\n", items);
printf("Cost per item: %.2f %c\n", cost_per_item, currency);
printf("Total cost = %.2f %c\n", total_cost, currency);

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

C 语言教程:数据类型和格式说明符的更多相关文章

  1. [Objective-C语言教程]数据类型(5)

    在Objective-C编程语言中,数据类型是指用于声明不同类型的变量或函数的扩展系统. 变量的类型决定了它在存储中占用的空间大小以及如何解释存储的位模式. Objective-C中的类型可分为以下几 ...

  2. Swift3.0语言教程使用占位符格式创建和初始化字符串

    Swift3.0语言教程使用占位符格式创建和初始化字符串 Swift3.0语言教程使用占位符格式创建和初始化字符串在很多的编程语言中都存在占位符,占位符就是为指定的内容占留一个位置.此功能一般在开发者 ...

  3. C语言(2)--数据类型

    C语言中提供多种不同的数据类型,用以存放不同的数据. 1.常见的基本类型有:int-->整型 float-->浮点型 double-->双精度浮点型 char-->字符型 NO ...

  4. 转:spring boot log4j2配置(使用log4j2.yml文件)---YAML 语言教程

    转:spring boot log4j2配置(使用log4j2.yml文件) - CSDN博客http://blog.csdn.net/ClementAD/article/details/514988 ...

  5. YAML 语言教程(转载)

    用YAML语言读取配置是最快的,之前的suricata中用yaml读取了配置,并且在代码运行期间,对配置进行了维护,所以抽点时间,来了解一下YAML语言编程,下文虽然对YAML语言和JAVAScrip ...

  6. 「C语言」数据类型及混合运算与类型转换

    深入学习C语言时,有必要先了解一下数据类型的概念,以及它们之间的混合运算与类型转换. 本篇文章便是根据<C语言程序设计教程>和在线翻阅资料后整理而出.(练习题将逐步更新) 目录:     ...

  7. GO语言基本数据类型

    一.整型 Go语言的数值类型分为以下几种:整数.浮点数.复数,其中每一种都包含了不同大小的数值类型,例如有符号整数包含 int8.int16.int32.int64 等,每种数值类型都决定了对应的大小 ...

  8. 学习笔记:yaml语言教程

    目录 1.YAML基本概念 1.1 简介 1.2 基本语法 1.3 支持的数据结构: 1.4 注意点 2.数据结构 2.1 字典 2.2 数组 2.3 纯量 2.4 强制类型转换,双! 2.5 字符串 ...

  9. YAML 语言教程与使用案例

    YAML语言教程与使用案例,如何编与读懂写YAML文件. YAML概要 YAML 是 “YAML Ain’t a Markup Language”(YAML 不是一种标记语言)的递归缩写.在开发的这种 ...

  10. Swift3.0语言教程删除字符与处理字符编码

    Swift3.0语言教程删除字符与处理字符编码 Swift3.0语言教程删除字符 Swift3.0语言教程删除字符与处理字符编码,在字符串中,如果开发者有不需要使用的字符,就可以将这些字符删除.在NS ...

随机推荐

  1. 4-request对象

    前端提交数据 必备知识点 前端form表单中action属性,不写默认是当前路由地址 前端form表单中的method属性,不写默认是GET请求 前端页面 templates\register.htm ...

  2. 监控系统open-falcon安装部署

    目录 官方文档 安装包下载地址 环境准备 安装redis 安装mysql 安装git 安装GO 安装后台 部署前端: 邮件报警 修改ALARM配置 修改报警接口 报警测试邮件展示 Q&A 官方 ...

  3. 使用beyond compare或kompare作为git的对比、合并工具

    两种方法 方法1: 直接使用命令 # 执行下面命令,参看支持对比合并工具名称,比如bc就是指beyond compare(收费软件,推荐使用开源的kompare) $ git difftool --t ...

  4. C#多线程(8):线程完成数

    目录 解决一个问题 CountdownEvent 类 构造函数和方法 示例 解决一个问题 假如,程序需要向一个 Web 发送 5 次请求,受网路波动影响,有一定几率请求失败.如果失败了,就需要重试. ...

  5. Taurus.MVC WebMVC 入门开发教程6:路由配置与路由映射

    前言: 在本篇 Taurus.MVC WebMVC 入门开发教程的第六篇文章中, 我们将讨论如何配置路由并映射到控制器和操作方法. 路由是决定应用程序如何响应客户端请求的重要组成部分,因此在 Web ...

  6. Netty笔记(7) - 使用Netty 模仿 Dubbo 实现简单的 远程调用

    使用Netty 模仿 Dubbo 实现简单的 远程调用 使用 java的反射 动态代理 加 Netty的远程访问 实现根据接口的RPC 远程调用 定义两个公共接口: public interface ...

  7. Android---TextView基础属性 + 跑马灯的三种方式

    <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:layout_wid ...

  8. 3、zookeeper在java使用的API

    引入maven包 <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient< ...

  9. Zabbix“专家坐诊”第192期问答汇总

    问题一 Q:请问下,客户机snmptrap发告警为啥server web收不到,关键是snmptrap日志已经收到,zabbix server配置以及开启snmptrap=1 snmptrap=var ...

  10. .Net Core中使用DiagnosticSource进行日志记录

    System.Diagnostics.DiagnosticSource 是一个可以对代码进行检测的模块,可以丰富地记录程序中地日志,包括可序列化的类型(例如 HttpResponseMessage 或 ...