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

推荐订阅源

V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
N
Netflix TechBlog - Medium
博客园 - 叶小钗
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
V
V2EX
IT之家
IT之家
J
Java Code Geeks
Hacker News - Newest:
Hacker News - Newest: "LLM"
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
GbyAI
GbyAI
D
Docker
S
Secure Thoughts
Recent Announcements
Recent Announcements
Webroot Blog
Webroot Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
云风的 BLOG
云风的 BLOG
博客园_首页
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Security Archives - TechRepublic
Security Archives - TechRepublic
酷 壳 – CoolShell
酷 壳 – CoolShell
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
N
News | PayPal Newsroom
S
Security @ Cisco Blogs
I
InfoQ
Last Week in AI
Last Week in AI
SecWiki News
SecWiki News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
W
WeLiveSecurity
T
Troy Hunt's Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Attack and Defense Labs
Attack and Defense Labs
美团技术团队
T
The Blog of Author Tim Ferriss
Google DeepMind News
Google DeepMind News
Martin Fowler
Martin Fowler
B
Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Scott Helme
Scott Helme
T
Tor Project blog
Know Your Adversary
Know Your Adversary
有赞技术团队
有赞技术团队
Hugging Face - Blog
Hugging Face - Blog
Recorded Future
Recorded Future
C
Cyber Attacks, Cyber Crime and Cyber Security
AI
AI
G
Google Developers 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