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

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

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

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

期待您的关注

目录

引言

[1. 整型(Integer Types)](#1. 整型(Integer Types))

[2. 浮点型(Floating-Point Types)](#2. 浮点型(Floating-Point Types))

[3. 字符型(Character Types)](#3. 字符型(Character Types))

[4. 布尔型(Boolean 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(对于无符号整数)。

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

  • 长整型(longlong 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博客

相关推荐
Ajiang28247353041 小时前
对于C++中stack和queue的认识以及priority_queue的模拟实现
开发语言·c++
盼海1 小时前
排序算法(五)--归并排序
数据结构·算法·排序算法
幽兰的天空1 小时前
Python 中的模式匹配:深入了解 match 语句
开发语言·python
Theodore_10224 小时前
4 设计模式原则之接口隔离原则
java·开发语言·设计模式·java-ee·接口隔离原则·javaee
网易独家音乐人Mike Zhou4 小时前
【卡尔曼滤波】数据预测Prediction观测器的理论推导及应用 C语言、Python实现(Kalman Filter)
c语言·python·单片机·物联网·算法·嵌入式·iot
----云烟----6 小时前
QT中QString类的各种使用
开发语言·qt
lsx2024066 小时前
SQL SELECT 语句:基础与进阶应用
开发语言
开心工作室_kaic6 小时前
ssm161基于web的资源共享平台的共享与开发+jsp(论文+源码)_kaic
java·开发语言·前端
向宇it6 小时前
【unity小技巧】unity 什么是反射?反射的作用?反射的使用场景?反射的缺点?常用的反射操作?反射常见示例
开发语言·游戏·unity·c#·游戏引擎
武子康6 小时前
Java-06 深入浅出 MyBatis - 一对一模型 SqlMapConfig 与 Mapper 详细讲解测试
java·开发语言·数据仓库·sql·mybatis·springboot·springcloud