惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Security Latest
Security Latest
量子位
博客园 - 三生石上(FineUI控件)
小众软件
小众软件
S
SegmentFault 最新的问题
The GitHub Blog
The GitHub Blog
AWS News Blog
AWS News Blog
T
Threat Research - Cisco Blogs
博客园 - Franky
Vercel News
Vercel News
H
Help Net Security
Martin Fowler
Martin Fowler
Security Archives - TechRepublic
Security Archives - TechRepublic
L
LINUX DO - 热门话题
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
L
Lohrmann on Cybersecurity
Cyberwarzone
Cyberwarzone
W
WeLiveSecurity
V2EX - 技术
V2EX - 技术
C
CERT Recently Published Vulnerability Notes
S
Secure Thoughts
C
Cyber Attacks, Cyber Crime and Cyber Security
B
Blog RSS Feed
H
Hacker News: Front Page
P
Proofpoint News Feed
博客园 - 聂微东
N
News and Events Feed by Topic
C
Cybersecurity and Infrastructure Security Agency CISA
D
Docker
博客园_首页
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
人人都是产品经理
人人都是产品经理
The Hacker News
The Hacker News
S
Security @ Cisco Blogs
博客园 - 【当耐特】
F
Fortinet All Blogs
The Register - Security
The Register - Security
A
About on SuperTechFans
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Schneier on Security
NISL@THU
NISL@THU
Attack and Defense Labs
Attack and Defense Labs
Help Net Security
Help Net Security
Cisco Talos Blog
Cisco Talos Blog
月光博客
月光博客
IT之家
IT之家
有赞技术团队
有赞技术团队
Know Your Adversary
Know Your Adversary
Hugging Face - Blog
Hugging Face - Blog

洛屿的小站

STM32F407 IAR环境下uC/OS-III移植完整指南 STM32 UCOS3+HAL库集成中的FPU HardFault问题 一种简单的卡尔曼滤波器设计 Cadence - 应律而动,落指成音 Zephyr - 聆风之息,为你而奏 不改一行插件代码,实现消息优先级与阻断 洛玖定时任务系统 在 butterfly 主题中添加首页点集动画(基于p2line项目) 你好,2026 stm32f4xx-ads1256驱动 stm32f4xx-ad9854并行驱动 主动式网站状态监测实现及其应用 右键菜单加入用Trae打开文件和文件夹 三角洲行动ID映射表 洛玖SDK说明 为网页文章开头添加原文连接 Hexo-Butterfly主题在主页添加GitHub贡献日历 Proteus中555定时器仿真问题 装饰器 洛玖开发日记 STS3032舵机获取力矩输出 kotlin网页前后端那些事 mspm0g3507-ad9850 奇怪的bug Paddle模型转PaddleLite 人工智能考核 构建一个yolov3网络 yolo和paddle模型常见输出参数 PaddleDetection 随便写的一些东西 实验室C语言第一次考核题目讲解及相关代码解读 C语言神经网络房价预测系统 C、C++数组,指针,指针数组,数组指针的区别 C、C++的大括号是必须的部分吗? C、C++预处理详解 C、C++其他关键字详解 C、C++存储类型关键字详解 C、C++控制语句关键字详解 C、C++关键字 C++药品管理系统 Bi-LSTM(Attention)的PyTorch实现 C语言实现波士顿房价预测 easy库的使用 edgeboardFZ3A相关问题 Predict.py的编写 Paddle环境搭建 百度Paddle模型训练 GMD09601-0.96OLED显示屏 【LeetCode 1617】统计子树中城市之间最大距离 C语言学习相关 STM32阵列按键 CH32(F10X F20X) 最短路 拓扑排序
C、C++数据类型关键字详解
洛屿 · 2023-10-10 · via 洛屿的小站

数据类型关键字

以下是对每个C语言数据类型关键字的详细解释,包括其包括特性、用法以及可能的范围和精度限制。

char

  • 特性:char(字符型)用于存储单个字符,通常占用1个字节的内存空间。它可以表示ASCII字符集中的字符。范围通常为-128到127。
  • 用法:通常用于存储字符或小整数值。
  • 示例代码:
    1
    char letter = 'A'; // 定义一个字符变量并赋值

short

  • 特性:short(短整型)用于存储整数值,通常占用2个字节的内存空间。范围通常为-32768到32767。
  • 用法:适用于节省内存空间但需要存储整数的情况。
  • 示例代码:
    1
    short temperature = -10; // 定义一个短整数变量并赋值

int

  • 特性:int(整型)用于存储整数值,通常占用4个字节的内存空间。这是最常用的整数类型。范围通常为-2147483648到2147483647。

  • 用法:通常用于存储整数,执行基本数学运算等。

  • 示例代码:

    1
    int count = 100; // 定义一个整数变量并赋值

    int类型在计算过程中,会仅保留整数位,比如:

    1
    2
    3
    int a = 3;
    a = a/2;
    //经过a/2计算后,3/2=1.5,实际上a被赋予的值是1

float

  • 特性:float(单精度浮点型)用于存储浮点数,通常占用4个字节的内存空间。它具有单精度(约6-7位有效数字)。
  • 用法:用于存储小数或具有小数部分的数值。
  • 示例代码:
    1
    float pi = 3.14; // 定义一个单精度浮点数变量并赋值为 3.14

double

  • 特性:double(双精度浮点型)用于存储双精度浮点数,通常占用8个字节的内存空间。它具有更高的精度(约15-16位有效数字)。
  • 用法:用于存储需要高精度的浮点数。
  • 示例代码:
    1
    double salary = 2.71828; // 定义一个双精度浮点数变量并赋值为 2.71828

long

  • 特性:long(长整型)用于存储长整数,通常占用4个或8个字节的内存空间,具体大小取决于编译器和平台。通常用1long long`去声明一个长整数。
  • 用法:用于存储大整数值。
  • 示例代码:
    1
    long long population = 8000000L; // 定义一个长整数变量并赋值,L表示值为长整数

signed 和 unsigned

  • 特性:这两个关键字用于指定整数的符号性质。signed用于表示有符号整数,可以表示正数、负数和零;unsigned用于表示无符号整数,只能表示非负整数。
  • 用法:根据需求选择合适的符号性质。
  • 示例代码:
    1
    2
    signed int temperature = -5; // 有符号整数
    unsigned int score = 95; // 无符号整数

struct

  • 特性:struct(结构体)用于定义自定义的数据类型,可以包含多个不同类型的成员变量。
  • 用法:用于组织和存储多个相关数据项。
  • 示例代码:
    1
    2
    3
    4
    5
    struct Point {
    int x;
    int y;
    };
    struct Point p1 = {2, 3}; // 定义一个结构体变量

enum

  • 特性:enum(枚举类型)用于创建一个有限集合的命名整数常量。
  • 用法:用于提高代码可读性,将整数值与有意义的标识符关联起来。
  • 示例代码:
    1
    2
    enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday };
    enum Days today = Tuesday; // 使用枚举值

union

- 特性:`union`(联合体)用于在相同的内存位置存储不同类型的数据,但只能同时存储其中一个成员。
    - 用法:用于节省内存空间,但需要同时存储不同类型的数据。
    - 示例代码:
  
1
2
3
4
5
6
union Data {
int i;
float f;
};
union Data value;
value.i = 42; // 存储整数

void

- 特性:`void`用于表示没有特定数据类型的值,通常用于函数的返回类型和指针类型。
    - 用法:
  - 函数返回类型:用于表示函数不返回任何值。
  - 指针类型:用于创建通用指针(`void*`),可以指向任何类型的数据。
    
    - 示例代码:
    
      
1
2
3
4
5
6
void printMessage() {
printf("Hello, World!\n");
}
void* ptr; // 定义一个通用指针
int x = 10;
ptr = &x; // 将通用指针指向一个整数

每种数据类型都有其自身的特性和适用场景。范围和精度限制取决于具体的数据类型和编译器/平台的实现。

例如,整数类型的范围受到位数的限制,浮点数类型的精度受到IEEE 754标准的限制。

在程序编写过程中,使用合适的数据类型可以提高程序的性能和可维护性。

版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 洛屿的小站

打赏

  • wechat

    wechat

  • alipay

    alipay