[C语言]数据类型关键字详解

基本数据类型

关键字说明存储大小(通常)取值范围(通常)示例
int声明整型变量4字节(32位系统)-2,147,483,648 到 2,147,483,647int count = 100;
char声明字符型变量1字节-128 到 127 或 0 到 255char grade = ‘A’;
float声明单精度浮点数4字节±1.2e-38 到 ±3.4e38 (约6-7位有效数字)float pi = 3.14f;
double声明双精度浮点数8字节±2.3e-308 到 ±1.7e308 (约15-16位有效数字)double precise = 3.1415926535;
void表示"无类型"void func();或void *ptr;
short短整型2字节-32,768 到 32,767short temp = -10;
long长整型4或8字节(取决于系统)-2,147,483,648 到 2,147,483,647(4字节时)long population = 7800000000L;
signed有符号类型(默认)同对应类型同对应类型(包含负数)signed int balance = -1000;
unsigned无符号类型同对应类型0 到对应类型最大值的两倍+1unsigned int age = 25;

详细说明

int (整型)

  • 最常用的整数类型
  • 默认是有符号的(signed)
  • 大小通常为机器字长(32位系统4字节,64位系统通常也是4字节)
int counter = 0;
int temperature = -10;

char (字符型)

  • 存储单个字符
  • 实际上存储的是ASCII码值(整数)
  • 可以用作小范围整数(-128到127)
char letter = 'B';
char newline = '\n';

float (单精度浮点)

  • 存储小数
  • 后缀’f’或’F’表示float常量
  • 精度约6-7位十进制数字
float pi = 3.14159f;
float temperature = 98.6f;

double (双精度浮点)

  • 更高精度的浮点数
  • 默认浮点常量是double类型
  • 精度约15-16位十进制数字
double precise = 3.141592653589793;
double distance = 1.496e8;  // 科学计数法

void (无类型)

  • 三种主要用途:
    • 函数不返回值:void func() {…}
    • 函数无参数:int func(void) {…}
    • 通用指针:void *ptr; (可指向任何类型)
void sayHello() {printf("Hello\n");
}

short (短整型)

  • 比int小的整数类型
  • 通常用于节省空间
short daysInWeek = 7;

long (长整型)

  • 比int大的整数类型(具体大小取决于系统)
  • 后缀’l’或’L’表示long常量
long worldPopulation = 7800000000L;

signed/unsigned (有符号/无符号)

  • 控制整数是否包含负值
  • 默认是有符号的(signed)
  • unsigned类型范围是0到对应signed类型正范围的两倍+1
signed int balance = -1000;  // 可正可负
unsigned int age = 25;       // 只能非负

类型修饰符组合

组合说明示例
unsigned short无符号短整型unsigned short port = 80;
unsigned long无符号长整型unsigned long bigNum = 4000000000UL;
long double扩展精度浮点long double precise = 3.141592653589793238L;
signed char有符号字符signed char sc = -128;
unsigned char无符号字符unsigned char uc = 255;

注意事项

平台依赖性

  • 某些类型大小随平台变化(特别是long)
  • 可用的<stdint.h>获取固定大小类型(int32_t等)

隐式类型转换

  • 混合类型运算时会发生自动类型转换
  • 小类型会提升为大类型

溢出行为

  • 有符号整数溢出是未定义行为
  • 无符号整数溢出是取模行为

字面量后缀

  • U/u:unsigned (如10U)
  • L/l:long (如100000L)
  • F/f:float (如3.14f)
  • LL/ll:long long (如10000000000LL)

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

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

相关文章

黑马python(二十二)

目录&#xff1a; 1.Python操作Mysql基础使用 2.Python操作Mysql数据插入 3.综合案例 1.Python操作Mysql基础使用 2.Python操作Mysql数据插入 3.综合案例 代码复用 黑马python&#xff08;二十一&#xff09;章节的的代码&#xff0c;读取文件内容

课堂笔记:吴恩达的AI课(AI FOR EVERYONE)-W1 深度学习的非技术性解释

深度学习的非技术性解释 &#xff08;1&#xff09;示例1&#xff1a;以商场为主买T恤为例&#xff0c;价格和需求的关系怎么样&#xff1f; 一般来说&#xff0c;价格越高&#xff0c;需求越少 这里输入A是 价格&#xff0c;输出B是需求&#xff0c;其中的映射关系是神经元&a…

dlib检测视频中的人脸并裁剪为图片保存

环境要求 找个带有基本cv配置的虚拟环境安装上dlib依赖的人脸检测的基础环境即可&#xff0c;主要是&#xff1a; pip install boost dlib opencv-python缺的按提示安装。 demo 设置好视频路径和图像保存路径&#xff0c;裁剪尺寸&#xff08;默认256&#xff09;以及裁剪帧…

真的!ToDesk远程控制已上线原生鸿蒙系统!

2025年5月&#xff0c;ToDesk远程控制正式宣布完成对PC鸿蒙系统的适配&#xff0c;成为业界首批原生支持HarmonyOS OS的跨端远控工具。 作为国内支持上亿设备的远程控制软件&#xff0c;ToDesk以无缝互联、快速响应、安全无界为核心&#xff0c;重新定义了跨设备远程协作的界限…

Java-58 深入浅出 分布式服务 ACID 三阶段提交3PC 对比2PC

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月16日更新到&#xff1a; AI炼丹日志-29 - 字节…

matplotlib 绘制饼图

1、功能介绍&#xff1a; 使用 python 的 matplotlib 库来创建一个简单的饼图。 2、代码部分&#xff1a; import matplotlib.pyplot as plt# 示例数据 labels [A, B, C, D, E] # 类别标签 sizes [15, 30, 45, 5, 5] # 每个类别对应的数值&#xff08;百分比&#xff09…

用Rust写平衡三进制除法器

1、除法的本质 除法的本质是减法&#xff0c;也就是一个大的数减去一个小的数&#xff0c;比如:10/2&#xff0c;也就是10-2-2-2-2-20&#xff0c;所以商5余0&#xff0c;10/3&#xff0c;也就是10-3-3-31&#xff0c;所以商3余1&#xff0c;这也是很常见的方法&#xff0c;但如…

深入探索WordPress Multisite:构建与管理多站点网络

随着互联网的快速发展&#xff0c;越来越多的企业和个人开始使用内容管理系统来搭建和维护自己的网站。WordPress作为全球最受欢迎的CMS之一&#xff0c;因其强大的功能和灵活性&#xff0c;成为了许多网站管理员的首选平台。而在一些特定需求的场景下&#xff0c;WordPress Mu…

.Net Core 获取文件路径

在 .NET Core 中获取文件路径的方法取决于你要获取的文件的位置和上下文。这里将介绍几种常见的方式来获取文件路径。 1. 获取当前工作目录 你可以使用 Directory.GetCurrentDirectory() 方法来获取当前工作目录的路径&#xff1a; using System; using System.IO; class P…

顺序表整理和单项链表01 day20

二&#xff1a;各个主要函数 一&#xff1a;CreatSeqList SeqList *CreateSeqList(int len); -------------------------------------------------------------/*** brief Create a Seq List object 创建一个顺序表** param n 是顺序表的大小* return SeqList* 指向顺序表的…

电商导购app平台的缓存策略与性能优化方案:架构师的实践经验

电商导购app平台的缓存策略与性能优化方案&#xff1a;架构师的实践经验 大家好&#xff0c;我是阿可&#xff0c;微赚淘客系统及省赚客APP创始人&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 缓存策略的重要性 在电商导购APP平台中&#xff…

学习C++、QT---12(C++的继承、权限对继承的影响)

每日一言 你的价值&#xff0c;由你自己定义&#xff0c;无需他人评判。 C的继承 直接上案例 继承是什么意思呢&#xff0c;就是我本来这个类我叫他基类、我希望创建我的下一个类有我这之前的类的属性和方法&#xff0c;那么我如果不用继承的话&#xff0c;就需要多写很多一样…

(6)Wireshark的TCP包详解-上篇

1.简介 上一篇中通过介绍和讲解&#xff0c;应该知道要讲解和介绍的内容在哪里了吧&#xff0c;没错就是介绍OSI七层模型的传输层。因为只有它建立主机端到端的连接如&#xff1a;TCP、UDP。 2.TCP是什么? tcp是工作在传输层&#xff0c;也就是网络层上一层的协议。 它是面…

太极八卦罗盘JS绘制

LeaferJS 是一款好用的 Canvas 引擎,通过LeaferJS绘制罗盘案例. https://www.leaferjs.com/ui/guide/ 示例 太极八卦罗盘 直接上代码 <template><div id"LuoPan"></div><div id"info"><p>屏幕宽度: {{ screenWidth }}px<…

Python开源项目月排行 2025年5月

#2025年5月2025年6月1日1scrapy一个开源的、基于 Python 的高性能网络爬虫和数据抓取框架。Scrapy 项目最初由伦敦的网络聚合和电子商务公司 Mydeco 的员工以及乌拉圭蒙得维的亚的网络咨询公司 Insophia 的开发者共同创建。目前&#xff0c;Scrapy 由 Zyte&#xff08;原名 Scr…

Debezium日常分享系列之:在 Kubernetes 中使用 Debezium 的 CDC

Debezium日常分享系列之&#xff1a;在 Kubernetes 中使用 Debezium 的 CDC 架构源数据库创建数据库凭证密钥Debezium 自定义镜像构建并推送镜像Kafka Connect 集群Debezium Postgres 连接器Debezium 创建的 Kafka 主题 Debezium 是一个开源的分布式变更数据捕获 (CDC) 平台。D…

tf serving和torch serve哪个耗时更低

TensorFlow Serving&#xff08;TF Serving&#xff09;和 TorchServe 的耗时对比需结合具体场景&#xff08;如硬件配置、模型类型、优化策略等&#xff09;&#xff0c;以下从多维度分析两者的性能差异及适用场景。 ⏱️ 1. 标准性能基准对比 根据公开压测数据&#xff08;…

Java面试宝典:基础六

133. 二进制小数点位移 答案:C(乘以2) 解析: 原理:二进制小数点右移一位等价于乘以 (2^1)(左移则除以 (2))。示例: 101.1(5.5)右移 → 1011(11)验证:(5.5 \times 2 = 11)说明:位移前:1 0 1 . 1 (值 = 2+2⁰+2⁻ = 5.5) 位移后:1 0 1 1 . (值 = 2+2+2⁰ =…

04-React中绑定this并给函数传参的几种方式

前言绑定 this 的方式一&#xff1a;bind()绑定 this 并给函数传参 的方式二&#xff1a;构造函数里设置 bind()绑定 this 并给函数传参 的方式三&#xff1a;箭头函数【荐】 前言 我们先来看下面这段代码&#xff1a; components/MyComponent.jsx import React from "…

Docker拉取不兼容的镜像解决办法

错误提示如下&#xff1a; WARNING: The requested images platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested295ef35cfefe0dce6904e017e89218695d9a9c092b45496218f4476357be4f9c 这个警告表明你…