基于linux平台的C语言入门教程(5)基本数据类型

文章目录

      • 1. 什么是数据类型?
      • 2. C 语言的基本数据类型
      • 3. 数据类型的存储大小
      • 4. 示例代码
        • 代码解析:
        • 输出结果:
      • 5. 常见问题
        • 问题 1:`float` 和 `double` 的区别是什么?
        • 问题 2:`unsigned` 类型可以存储负数吗?
        • 问题 3:如何选择合适的数据类型?
      • 6. 扩展练习

1. 什么是数据类型?

数据类型是编程语言中用于定义变量或常量可以存储的数据种类。C 语言提供了多种基本数据类型,用于表示不同类型的数据,如整数、浮点数、字符等。

2. C 语言的基本数据类型

C 语言的基本数据类型可以分为以下几类:

数据类型关键字描述示例
整数类型int存储整数值int age = 25;
短整型short存储较小的整数值short count = 10;
长整型long存储较大的整数值long population = 1000000L;
字符类型char存储单个字符char letter = 'A';
单精度浮点型float存储单精度浮点数float price = 99.99f;
双精度浮点型double存储双精度浮点数double pi = 3.14159;
无符号类型unsigned存储非负整数值unsigned int score = 100;

3. 数据类型的存储大小

不同的数据类型占用的内存大小不同,具体取决于编译器和系统架构。以下是常见数据类型的存储大小(以 64 位系统为例):

数据类型存储大小(字节)取值范围
char1-128 到 127 或 0 到 255
short2-32,768 到 32,767
int4-2,147,483,648 到 2,147,483,647
long8-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
float4约 ±3.4e-38 到 ±3.4e38
double8约 ±1.7e-308 到 ±1.7e308

4. 示例代码

以下是一个使用基本数据类型的示例程序:

#include <stdio.h>int main() {int age = 25;                     // 整数类型short count = 10;                 // 短整型long population = 1000000L;       // 长整型char letter = 'A';                // 字符类型float price = 99.99f;             // 单精度浮点型double pi = 3.14159;              // 双精度浮点型unsigned int score = 100;         // 无符号类型// 输出结果printf("年龄: %d\n", age);printf("数量: %hd\n", count);printf("人口: %ld\n", population);printf("字母: %c\n", letter);printf("价格: %.2f\n", price);printf("圆周率: %.5lf\n", pi);printf("分数: %u\n", score);return 0;
}
代码解析:
  1. 变量声明与初始化

    • 声明并初始化了不同类型的变量。
  2. 格式化输出

    • 使用 printf 输出变量的值。
    • %hd 用于输出 short 类型,%ld 用于输出 long 类型,%u 用于输出无符号整数。
输出结果:
年龄: 25
数量: 10
人口: 1000000
字母: A
价格: 99.99
圆周率: 3.14159
分数: 100

5. 常见问题

问题 1:floatdouble 的区别是什么?
  • float 是单精度浮点数,占用 4 字节,精度较低。
  • double 是双精度浮点数,占用 8 字节,精度较高。
问题 2:unsigned 类型可以存储负数吗?
  • 不可以。unsigned 类型只能存储非负整数。
问题 3:如何选择合适的数据类型?
  • 根据数据的取值范围和精度需求选择合适的数据类型。例如,存储年龄可以使用 int,存储价格可以使用 floatdouble

6. 扩展练习

  1. 修改程序,添加一个新的变量存储体重(使用 float 类型),并输出。
  2. 尝试使用 long long 类型存储一个非常大的整数,并输出。
  3. 编写一个程序,计算两个浮点数的乘积,并输出结果。

如果你需要其他文章的内容,请告诉我,我会继续输出!

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

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

相关文章

系统架构设计知识体系总结

1.技术选型 1.什么是技术选型&#xff1f; 技术选型是指评估和选择在项目或系统开发中使用的最合适的技术和工具的过程。这涉及考虑基于其能力、特性、与项目需求的兼容性、可扩展性、性能、维护和其他因素的各种可用选项。技术选型的目标是确定与项目目标相符合、能够有效解…

数智读书笔记系列022《算力网络-云网融合2.0时代的网络架构与关键技术》读书笔记

一、书籍核心价值与定位 1.1 书籍概述:中国联通研究院的权威之作 《算力网络 —— 云网融合 2.0 时代的网络架构与关键技术》由中国联通研究院算力网络攻关团队精心撰写,是业界首部系统性探讨云网融合 2.0 与算力网络的专著。在云网融合从 1.0 迈向 2.0 的关键节点,本书的…

知识图谱中NLP新技术

知识图谱与自然语言处理&#xff08;NLP&#xff09;的结合是当前人工智能领域的前沿方向&#xff0c;其技术发展呈现多维度融合与场景深化的特点。以下从核心技术突破、应用场景创新及未来趋势三个层面&#xff0c;系统梳理知识图谱中NLP的最新进展&#xff1a; 一、核心技术突…

ASP.NET Web的 Razor Pages应用,配置热重载,解决.NET Core MVC 页面在更改后不刷新

Razor Pages应用&#xff0c;修改页面查看修改效果&#xff0c;如果没有热重载&#xff0c;改一句话跑一次&#xff0c;这个活就没法干了。 1、VS2022中的NuGet中安装RuntimeCompilation Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 需要配套你的.net sdk版本&#x…

DeepSeek(8):结合Kimi-PPT助手一键生成演示报告

1 生成内容 在Deepseek中生成内容&#xff1a; 帮我创建年度计划&#xff0c;描述《智能枕头》产品的如何在全国销售&#xff0c;计划切分到每个月。从而让我们的老板和团队对报告充满信息。输出的内容我需要放到ppt中进行展示。 使用Deepseek R1模型&#xff0c;如下&#x…

到底爱不爱我

L2-3 到底爱不爱我 古代少女有了心上人时&#xff0c;会悄悄折一条树枝&#xff0c;揪那枝上的叶子&#xff0c;揪一片叶子念一句“爱我”&#xff0c;再揪一片念一句“不爱我”…… 这样揪落最后一片叶子的时候&#xff0c;看看是停在“爱”还是“不爱”。 但聪明的慧娘一眼洞…

网络华为HCIA+HCIP 网络编程自动化

telnetlib介绍 telnetlib是Python标准库中的模块。它提供了实现Telnet功能的类telnetlib.Telnet。这里通过调用telnetlib.Telnet类里的不同方法实现不同功能。 配置云

【10】高效存储MongoDB的用法

目录 一、什么是MongoDB 二、准备工作 &#xff08;1&#xff09;安装MongoDB ​&#xff08;2&#xff09;安装pymongo库 三、连接MongoDB 四、指定数据库 五、指定集合 六、插入数据 &#xff08;1&#xff09; insert 方法 &#xff08;2&#xff09;insert_one(…

datawhale组队学习--大语言模型—task4:Transformer架构及详细配置

第五章 模型架构 在前述章节中已经对预训练数据的准备流程&#xff08;第 4 章&#xff09;进行了介绍。本章主 要讨论大语言模型的模型架构选择&#xff0c;主要围绕 Transformer 模型&#xff08;第 5.1 节&#xff09;、详细 配置&#xff08;第 5.2 节&#xff09;、主流架…

Tomcat虚拟主机配置详解:Centos环境下多域名部署(详细教程!)

&#x1f3e1;作者主页&#xff1a;点击&#xff01; Tomcat服务器&#x1f4dd;专栏&#xff1a;点击&#xff01; &#x1f427;Linux高级管理防护和群集专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2025年3月18日14点14分 最近在折腾 Tomcat 的时候&…

Java+Html实现前后端客服聊天

文章目录 核心组件网络通信层事件调度层服务编排层 Spring实现客服聊天技术方案对比WebScoket建立连接用户上线实现指定用户私聊群聊离线 SpringBootWebSocketHtmljQuery实现客服聊天1. 目录结构2. 配置类3. 实体类、service、controller4. ChatWebSocketHandler消息处理5.前端…

51c自动驾驶~合集24

我自己的原文哦~ https://blog.51cto.com/whaosoft/11926510 #DriveArena 上海AI Lab又放大招&#xff1a;首个高保真闭环生成仿真平台 仓库链接&#xff1a;https://github.com/PJLab-ADG/DriveArena 项目链接&#xff1a;https://pjlab-adg.github.io/DriveArena/ D…

锦华新材业绩波动明显:偿债能力偏弱,大额分红引关注

《港湾商业观察》施子夫 近期&#xff0c;浙江锦华新材料股份有限公司&#xff08;以下简称&#xff0c;锦华新材&#xff09;收到北交所下发的第二轮审核问询函&#xff0c;公司的上市进程继续推进中。 从两轮审核问询函中监管层关注的问题来看&#xff0c;有关锦华新材业绩…

【Node.js入门笔记9---path 模块】

Node.js入门笔记9 Node.js---path 模块一、核心功能0.学习path的前提1. 使用 path.join() 安全拼接路径2. path.resolve()&#xff0c;路径解析&#xff08;绝对路径&#xff09;3. 路径信息提取4. 路径规范化 二、跨平台关键点1. 路径分隔符2. 环境变量分隔符3. 路径格式解析4…

C++20 中 `constexpr` 的强大扩展:算法、工具与复数库的变革

文章目录 一、constexpr 在 <algorithm> 中的应用1. 编译时排序2. 编译时查找 二、constexpr 在 <utility> 中的应用1. 编译时交换2. 编译时条件交换 三、constexpr 在 <complex> 中的应用1. 编译时复数运算 四、总结 C20 对 constexpr 的增强是其最引人注目…

python基础知识,if,elif语句运用(详细),常见编程例题练习

一、问答题 &#xff08;1&#xff09;怎样生成一个满足条件10 ≤ i ≤ 50的随机整数? import random i random.randint(10, 50) random.randint(a, b) #包含a和b &#xff08;2&#xff09;如果number分别是30和35&#xff0c;那么a中的代码和b中的代码的输出结果是什么? …

C++遍历树,前中后序,递归非递归实现

文章目录 前序遍历中序遍历后序遍历代码解释 前序遍历 递归思路&#xff1a;先访问根节点&#xff0c;然后递归遍历左子树&#xff0c;最后递归遍历右子树。非递归思路&#xff1a;使用栈来模拟递归过程。先将根节点入栈&#xff0c;之后循环执行以下操作&#xff1a;弹出栈顶…

Spring 声明式事务应该怎么学?

1、引言 Spring 的声明式事务极大地方便了日常的事务相关代码编写&#xff0c;它的设计如此巧妙&#xff0c;以至于在使用中几乎感觉不到它的存在&#xff0c;只需要优雅地加一个 Transactional 注解&#xff0c;一切就都顺理成章地完成了&#xff01; 毫不夸张地讲&#xff…

面试复习-基础网络+运维知识

一、TCP/IP模型及每层对应通信协议 1.1第一层-应用层 作用&#xff1a;服务及应用程序 HTTP --- 超文本传输协议--- 获取网页信息---80&#xff08;TCP 80&#xff09; HTTPS --- HTTP SSL&#xff08;安全传输协议&#xff09;/TLS ---443&#xff08;TCP 443&#xff09; …

HeyGem.ai 全离线数字人生成引擎加入 GitCode:开启本地化 AIGC 创作新时代

在人工智能技术飞速演进的时代&#xff0c;数据隐私与创作自由正成为全球开发者关注的焦点。硅基智能旗下开源项目 HeyGem.ai 近日正式加入 GitCode&#xff0c;以全球首个全离线数字人生成引擎的颠覆性技术&#xff0c;重新定义人工智能生成内容&#xff08;AIGC&#xff09;的…