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. 合并区间(区间排序,vector的动态扩容的应用)

    以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] .请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入 ...

  2. 【Azure Storage Account Table】询问批量将存储账户中的表嵌入另一个账户中的办法

    问题描述 询问批量将存储账户中的表嵌入另一个账户中的办法? 问题解答 方式一:使用 AzCopy 使用Az copy做表格的导入导出,注意您需要使用Azcopy 7.3版本来实现对Table的操作,可 ...

  3. 【Azure 应用服务】在App Service中调用外部服务API时需要携带客户端证书,而多次调用的情况下会出现WindowsCryptographicException Keyset does not exist异常

    问题描述 在App Service中调用外部服务API时需要携带客户端证书,而多次调用的情况下会出现WindowsCryptographicException Keyset does not exis ...

  4. audio currentTime 设置后,重置成0,解决方案(流文件-下载文件)

    audio currentTime 设置后,重置成0,解决方案 第一步-流文件-下载文件: 先查看你的mp3文件是 流文件,还是下载文件. 检测方式,就是放到浏览器回车.在线播放就是流文件,直接下载了 ...

  5. vscode 切换页签快捷键 自定义 Ctrl+H Ctrl+L 左右切换

    今天需要整理写资料,需要在多个页签之间切换,发现自定义了快捷. 好久不用这个快捷键,都快忘了. vscode 切换页签快捷键 自定义 Ctrl+H Ctrl+L 左右切换

  6. 动态挂载指定vue组件 Vue.extend $mount('#aaa111')

    模板中要有定位 <template> <div id="aaa111"></div> </template> 指定某个函数执行 im ...

  7. 开发环境篇之HALCON数据结构

    开发环境篇之HALCON基础 目录 基本数据分类 图标类数据 Image(图片) Pixel:像素 Channel:通道 Domain:域 图片操作 Region(区域) Region操作 XLD(轮 ...

  8. linux 无法找到“/usr/bin/core_perl/gcc” vscode

    解决问题的思路 查看有没有gcc,没有安装 有的话就是,修改安装路径就可以? "/usr/bin/core_perl/gcc".修改成Gcc的绝对路径 我的修改是./usr/bin ...

  9. 基于python中librosa的声音混音实例解析

    一 概念   1.一些概念 Librosa是一个用于音频.音乐分析.处理的python工具包,一些常见的时频处理.特征提取.绘制声音图形等功能应有尽有,功能十分强大.本文主要介绍libros的基本用法 ...

  10. 泰凌微TLSR8258芯片解决方案开发之串口打印级别设置

    一  TRSR8258简介 该芯片是泰凌微推出来的一款纯ble的芯片,接口丰富,功耗低,资源丰富,非常适合做可穿戴物联网设备,笔者拿这颗芯片做了不少方案,感觉非常好用,所以这里写一下使用心得. 二 串 ...