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

C语言常用的数据类型有哪些?

1.基本数据类型

整型(Integer)

int:是最常用的整型类型,通常占用 4 个字节(在 32 位和 64 位系统中),可以存储有符号整数。例如,int num = 10;定义了一个整型变量num并初始化为 10。
short:短整型,一般占用 2 个字节。它适用于存储占用空间较小的整数,如short age = 20;。
long:长整型,在 32 位系统中通常占用 4 个字节,在 64 位系统中可能占用 8 个字节。存储范围比int大,用于需要更大整数范围的情况,如long bigNumber = 1234567890L;(注意这里的L后缀,表示长整型常量)。
long long:更长的整型,一般占用 8 个字节,可存储更大范围的整数。例如,long long veryBigNumber = 9223372036854775807LL;(这里的LL后缀用于表示长整型常量)。

浮点型(Floating - point)

float:单精度浮点数,占用 4 个字节。它用于存储带有小数部分的数字,精度相对较低。例如,float pi = 3.14f;(注意这里的f后缀,表示单精度浮点数常量)。
double:双精度浮点数,占用 8 个字节,精度比float高。在大多数情况下,如果需要高精度的小数运算,会使用double。例如,double gravity = 9.8;。

字符型(Character)

char:用于存储单个字符,占用 1 个字节。字符是用 ASCII 码(美国信息交换标准代码)来表示的,例如char ch = ‘A’;,这里ch存储了字符A,它在 ASCII 码中的值是 65。可以使用字符型来处理文本中的单个字符,比如进行字符的比较、转换等操作。

布尔型(Boolean)

bool:C99 标准引入了布尔类型,它只有两个值,true和false,用于表示逻辑真和假。例如,bool flag = true;,布尔型通常用于条件判断和逻辑运算。

2.构造数据类型

数组(Array)

数组是一组相同类型元素的集合。例如,int arr[5];定义了一个包含 5 个整型元素的数组arr。可以通过下标来访问数组中的元素,如arr[0] = 1;,这里将数组arr的第一个元素赋值为 1。数组可以是一维的,也可以是多维的。例如,二维数组int matrix[3][3];可以用于表示一个 3x3 的矩阵。

结构体(Struct)

结构体允许用户将不同类型的数据组合在一起。例如,定义一个表示学生信息的结构体:

     struct Student {
         char name[20];
         int age;
         float score;
     };

可以通过以下方式使用结构体:

     struct Student stu;
     strcpy(stu.name, "John");
     stu.age = 20;
     stu.score = 85.5;

联合体(Union)

联合体是一种特殊的数据类型,它的所有成员共享同一块内存空间。例如:

     union Data {
         int i;
         float f;
         char str[20];
     };

当使用联合体时,同一时刻只能使用其中的一个成员,因为它们共用内存。

枚举(Enum)

枚举是一种用户自定义的数据类型,用于定义一组命名的整数常量。例如:

     enum Color {
         RED,
         GREEN,
         BLUE
     };

这里RED、GREEN和BLUE是枚举常量,默认情况下它们的值分别是 0、1、2。可以用于使代码更具可读性,比如在表示颜色的选项等场景中使用。

3.指针类型(Pointer)

指针是一种特殊的数据类型,它存储的是变量的地址。例如,int *p;定义了一个指向整型变量的指针p。可以通过&运算符获取变量的地址,如int num = 10; p = #,这里p就指向了变量num。指针可以用于动态内存分配、函数参数传递(用于修改实参的值)等多种操作。

4.空类型(Void)

void:用于表示无类型。主要有两种用途,一是作为函数的返回类型,表示函数不返回任何值,如void printMessage(void) { printf(“Hello!\n”); };二是作为指针类型,表示通用指针,如void *ptr;,这种指针可以指向任何类型的数据,但在使用时需要进行类型转换。


http://www.kler.cn/a/371943.html

相关文章:

  • Linux 系统性能调优技巧
  • 大数据-191 Elasticsearch - ES 集群模式 配置启动 规划调优
  • 中欧科学家论坛暨第六届人工智能与先进制造国际会议(AIAM 2024)在德国法兰克福成功举办,两百余名中外科学家共襄盛举
  • 电子邮件营销平台教程:从零开始营销指南!
  • AXI接口的实现逻辑和底层原理,在FPGA中如何实现AXI接口,一篇文章足以搞明白!!!
  • 【大数据学习 | kafka】kafka的shell操作
  • uniapp封装movable-area+movable-view组件,实现悬浮按钮可拖动,自动吸附边缘效果,自动向两边靠拢
  • element ui中el-image组件查看图片的坑
  • QT相机连接与拍照
  • 深度学习(七)深度强化学习:融合创新的智能之路(7/10)
  • Python 爬虫项目实战:爬取某云热歌榜歌曲
  • 使用Python来下一场雪
  • STM32F103C8T6 IO 操作
  • DevOps赋能:优化业务价值流的实战策略与路径(下)
  • ViSual studio如何安装 并使用GeographicLib
  • 大模型提示词简介 举例
  • zjy-sqlite-manage使用文档v1
  • 每日读则推(十四)——Meta Movie Gen: the most advanced media foundation models to-date
  • 等保行业如何选择核实的安全防御技术
  • Python 机器学习中的模型解释性与可解释性
  • 有防蓝光的护眼灯有哪些品牌?介绍五款值得入手的品牌和型号
  • 深度学习-交叉熵损失函数
  • Django ORM 数据库管理 提高查询、更新性能的技巧和编程习惯:
  • ECharts 折线图 / 柱状图 ,通用配置标注示例
  • OpenCV基本操作(python开发)——(8)实现芯片瑕疵检测
  • 【GPT模型的大小】GPT3模型到底多大,如果训练需要什么条件?