当前位置: 首页 > news >正文

【C语言指南】数据类型详解(上)——内置类型

           💓 博客主页:倔强的石头的CSDN主页 

           📝Gitee主页:倔强的石头的gitee主页

            ⏩ 文章专栏:《C语言指南》

                                  期待您的关注

 

47f09392526c71b5885ec838a3ea7ffe.gif

 

目录

引言

1. 整型(Integer Types)

2. 浮点型(Floating-Point Types)

3. 字符型(Character Types)

4. 布尔型(Boolean Types,模拟)

 

结语


C语言自定义类型的详解可参考下一篇文章:

【C语言指南】数据类型详解(下)——自定义类型-CSDN博客

 

引言

在C语言的世界里,其内置数据类型是编程世界的基石。这些数据类型由C语言标准直接定义,无需用户额外定义即可直接使用,它们构成了程序中最基本的元素。

 

本文将详细探讨C语言中的内置数据类型,包括整型、浮点型、字符型以及布尔型(虽然C99之前标准C没有直接的布尔类型,但通常使用_Bool或宏定义来模拟),并对每种类型的使用场景、存储方式及注意事项进行详细说明。

1. 整型(Integer Types)

整型用于存储整数值,包括正数、负数和零。

C语言提供了多种整型,以适应不同大小和范围的整数需求。

  • 基本整型(int最常见的整型,其大小和范围取决于编译器和平台。在大多数现代系统上,int通常占用4个字节(32位),能表示的范围大约是-2,147,483,648到2,147,483,647(对于有符号整数)或0到4,294,967,295(对于无符号整数)。

  • 短整型(short 或 short int:比int更小的整型,通常占用2个字节(16位)。其范围也相应减小,适用于需要节省内存空间的场合。

  • 长整型(long 或 long int:比int更大的整型,至少占用4个字节,但在64位系统上通常占用8个字节。long longlong long int是C99标准引入的,用于表示更大的整数,其大小至少为long的两倍。

  • 无符号整型:在基本整型前加unsigned关键字,表示只能存储非负数值。无符号整型能表示的正数范围是有符号整型的两倍(因为不需要表示负数)。

  • 有符号整型与无符号整型的转换:在表达式中混合使用有符号和无符号整型时,有符号整型会被隐式转换为无符号整型,这可能导致意外的结果,特别是当有符号整型值为负数时。

2. 浮点型(Floating-Point Types)

浮点型用于存储带小数点的数值,包括正数、负数和零

C语言提供了三种浮点类型。

  • 单精度浮点型(float:通常占用4个字节,提供大约7位十进制精度的浮点数运算。适合一般精度的科学计算和工程计算。

  • 双精度浮点型(double:至少占用8个字节,提供大约15到17位十进制精度的浮点数运算。是float类型的超集,用于需要更高精度的场合。

  • 扩展精度浮点型(long double:至少与double有相同的精度,但具体实现可能有所不同。在某些平台上,long double可能占用10字节或更多,以提供更高的精度和范围。

 

3. 字符型(Character Types)

字符型用于存储单个字符,如字母、数字或符号。

  • 字符型(char:通常占用1个字节,可以是有符号的(signed char)或无符号的(unsigned char)。默认情况下,char可能是有符号的也可能是无符号的,这取决于编译器和平台。char类型不仅可以用来存储字符,还可以作为小型整数使用,因为字符在计算机内部是以整数形式存储的。

  • 宽字符型(wchar_t:是C99标准引入的,用于表示宽字符(如Unicode字符)。其大小足以存储实现定义的本地环境中的任何字符集中的任何字符。

 

4. 布尔型(Boolean Types,模拟)

虽然C99之前的标准C没有直接的布尔类型,但通常使用_Bool关键字(C99引入)或宏定义(如#define TRUE 1#define FALSE 0)来模拟布尔类型。

从C99开始,<stdbool.h>头文件提供了booltruefalse的定义,使得布尔类型的使用更加直接和方便。

结语

C语言的内置数据类型为程序员提供了丰富的选项来存储和处理各种类型的数据。了解并掌握这些类型,是编写高效、安全C程序的基础。

在后续的文章中,我们将探讨C语言的自定义类型,包括结构体、联合体、位字段以及类型定义(typedef),这些类型将进一步扩展C语言的数据表示能力。

 

自定义类型参考下一篇文章:

【C语言指南】数据类型详解(下)——自定义类型-CSDN博客

 

相关文章:

【C语言指南】数据类型详解(上)——内置类型

&#x1f493; 博客主页&#xff1a;倔强的石头的CSDN主页 &#x1f4dd;Gitee主页&#xff1a;倔强的石头的gitee主页 ⏩ 文章专栏&#xff1a;《C语言指南》 期待您的关注 目录 引言 1. 整型&#xff08;Integer Types&#xff09; 2. 浮点型&#xff08;Floating-Point …...

视频汇聚/视频存储/安防视频监控EasyCVR平台RTMP推流显示离线是什么原因?

视频汇聚/视频存储/安防视频监控EasyCVR视频汇聚平台兼容性强、支持灵活拓展&#xff0c;平台可提供视频远程监控、录像、存储与回放、视频转码、视频快照、告警、云台控制、语音对讲、平台级联等视频能力。 EasyCVR安防监控视频综合管理平台采用先进的网络传输技术&#xff0…...

联想电脑怎么开启vt_联想电脑开启vt虚拟化教程(附intel和amd主板开启方法)

最近使用联想电脑的小伙伴们问我&#xff0c;联想电脑怎么开启vt虚拟。大多数可以在Bios中开启vt虚拟化技术&#xff0c;当CPU支持VT-x虚拟化技术&#xff0c;有些电脑会自动开启VT-x虚拟化技术功能。而大部分的电脑则需要在Bios Setup界面中&#xff0c;手动进行设置&#xff…...

手把手教你使用YOLOv11训练自己数据集(含环境搭建 、数据集查找、模型训练)

一、前言 本文内含YOLOv11网络结构图 训练教程 推理教程 数据集获取等有关YOLOv11的内容&#xff01; 官方代码地址&#xff1a;https://github.com/ultralytics/ultralytics/tree/main/ultralytics/cfg/models/11 二、整体网络结构图 三、环境搭建 项目环境如下&#xf…...

LabVIEW界面输入值设为默认值

在LabVIEW中&#xff0c;将前面板上所有控件的当前输入值设为默认值&#xff0c;可以通过以下步骤实现&#xff1a; 使用控件属性节点&#xff1a;你可以创建一个属性节点来获取所有控件的引用。 右键点击控件&#xff0c;选择“创建” > “属性节点”。 设置属性节点为“D…...

【Android 14源码分析】Activity启动流程-1

忽然有一天&#xff0c;我想要做一件事&#xff1a;去代码中去验证那些曾经被“灌输”的理论。                                                                                  – 服装…...

Java 中 synchronized 和 Thread 的使用场合介绍

在 Java 编程中&#xff0c;synchronized 和 Thread 是处理并发与多线程编程的关键工具。多线程编程是为了在单一程序中并行执行多个任务&#xff0c;Java 提供了丰富的 API 和关键字以实现这一目标&#xff0c;而其中 synchronized 和 Thread 是非常基础和重要的部分。 synch…...

爬虫库是什么?是ip吗

爬虫库通常指的是用于网页爬虫&#xff08;Web Scraping&#xff09;开发的代码库或框架&#xff0c;它不是IP地址。以下是关于爬虫库的详细解释&#xff1a; 爬虫库的定义 爬虫库是一些用于简化网络数据抓取过程的工具和框架&#xff0c;通常提供了一系列函数和类&#xff0…...

【MySQL】查询原理 —— B+树查询数据全过程

使用B树作为索引结构的原因&#xff1a; 一种自平衡树&#xff1a; B树在插入和删除的时候节点会进行分裂和合并操作&#xff0c;以保持树的平衡&#xff0c;存在冗余节点&#xff0c;使得删除的时候树结构变化小&#xff0c;更高效。 高度不会增长过快&#xff0c;查询磁盘I…...

系统设置 WIFI输入框被挡住解决方案

文章目录 问题点复现的场景机器横屏可复现&#xff0c;竖屏不存在跟density 相关的。 解决问题方案设置输入模式路径 部分源码跟踪方法 延伸思考设置输入模式设置主题 问题点 进入系统设置-网络和互联网-WLAN-点击WIFI item ,密码输入框被遮挡&#xff0c;输入的密码不可见.如…...

SpringCloud无法注册Nacos和配置中心

今天升级SpringCloud版本&#xff0c;导致服务无法注册到nacos&#xff0c;使用nacos作为配置中心也无法刷新配置信息&#xff0c;后来发现是因为只更新了SpringCloud版本&#xff0c;SpringCloud-Alibaba没有更新导致的问题。 升级出现问题的版本是&#xff1a; <dependen…...

word2vector训练数据集整理(代码实现)

import math import os import random import torch import dltools from matplotlib import pyplot as plt #读取数据集 def read_ptb():"""将PTB数据集加载到文本行的列表中"""with open(./ptb/ptb.train.txt) as f:raw_text f.read()return…...

无心上班,只想为祖国庆生?让ChatGPT帮你搞定工作!

国庆假期临近&#xff0c;大家的心早已飞向诗和远方了吧。 然而&#xff0c;现实总是无情地将我们拉回到堆积如山的工作任务上&#xff1a;紧急报告的截止日期就在眼前&#xff0c;复杂的项目策划还未动笔&#xff0c;客户的定制需求迫在眉睫。每年的这个时候&#xff0c;如何…...

【Python】YOLO牛刀小试:快速实现视频物体检测

YOLO牛刀小试&#xff1a;快速实现视频物体检测 在深度学习的众多应用中&#xff0c;物体检测是一个热门且重要的领域。YOLO&#xff08;You Only Look Once&#xff09;系列模型以其快速和高效的特点&#xff0c;成为了物体检测的首选之一。本文将介绍如何使用YOLOv8模型进行…...

Vscode超好看的渐变主题插件

样式效果&#xff1a; 插件使用方法&#xff1a; 然后重启&#xff0c;之后会显示vccode损坏&#xff0c;不用理会&#xff0c;因为这个插件是更改了应用内部代码&#xff0c;直接不再显示即可。...

OceanBase技术解析:自适应分布式下压技术

在《OceanBase 数据库源码解析》这本书中&#xff0c;关于SQL执行器的深入剖析相对较少&#xff0c;因此&#xff0c;希望增添一些实用且详尽的补充内容。 上一篇博客《 OceanBase技术解析&#xff1a; 执行器中的自适应技术》中&#xff0c;已初步介绍了执行器中几项典型的自适…...

Firebase和JavaScript创建Postback Link逻辑

Firebase是一个提供后端即服务(BaaS)的平台,它允许开发者快速构建应用程序而无需管理服务器。Firebase不直接提供生成Postback Link的功能,但您可以使用Firebase的功能来构建和管理URL,然后在客户端使用这些URL来实现Postback。 以下是如何使用Firebase和JavaScript来创建…...

docker配置daemon.json文件

报错 &#xff1a;Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers) 解决方法 配置加速地址 vim /etc/docker/daemon.json添加以下内容 {"registry-mirro…...

【08】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-Scroll容器与Tabs组件

序言&#xff1a; 本文详细讲解了关于我们在页面上经常看到的可滚动页面和导航栏在鸿蒙开发中如何用Scroll和Tabs组件实现&#xff0c;介绍了Scroll和Tabs的基本用法与属性。 笔者也是跟着B站黑马的课程一步步学习&#xff0c;学习的过程中添加部分自己的想法整理为笔记分享出…...

苏州 数字化科技展厅展馆-「世岩科技」一站式服务商

数字化科技展厅展馆设计施工是一个综合性强、技术要求高的项目&#xff0c;涉及到众多方面的要点。以下是对数字化科技展厅展馆设计施工要点的详细分析&#xff1a; 一、明确目标与定位 在设计之初&#xff0c;必须明确展厅的目标和定位。这包括确定展厅的主题、目标受众、展…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构&#xff1a;基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中&#xff08;图1&#xff09;&#xff1a; mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

macOS 终端智能代理检测

&#x1f9e0; 终端智能代理检测&#xff1a;自动判断是否需要设置代理访问 GitHub 在开发中&#xff0c;使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新&#xff0c;例如&#xff1a; fatal: unable to access https://github.com/ohmyzsh/oh…...

Pydantic + Function Calling的结合

1、Pydantic Pydantic 是一个 Python 库&#xff0c;用于数据验证和设置管理&#xff0c;通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发&#xff08;如 FastAPI&#xff09;、配置管理和数据解析&#xff0c;核心功能包括&#xff1a; 数据验证&#xff1a;通过…...

医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor

1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...