news 2026/6/26 22:40:48

C语言数据类型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C语言数据类型

1、数据类型

1.1字符型

字符英文单词是character,在C语言中 char 表示字符类型。

char字符型------1字节 [signed] char//有符号的 unsigned char//无符号的

1.2整型

整数英文单词integer,在C语言中 int 表示整型。

//短整型------2字节 short [int] [signed] short [int] unsigned short [int] //整型------4字节 int [signed] int unsigned int //长整型------4字节 long [int] [signed] long [int] unsigned long [int] //更长的整型 C99中引入------8字节 long long [int] [signed] long long [int] unsigned long long [int]

1.3浮点型

float//单精度浮点型------4字节 double//双精度浮点型------8字节 long double------8字节

1.4布尔类型

C99中引入布尔类型--------1字节,专门表示真/假的变量。

C语言本来没有布尔类型,使用0表示假,非0表示真。

布尔类型使用必须包含头文件<stdbool.h>,取值是true或false。

#include <stdio.h> #include <stdbool.h> int main() { //_Bool flag1 = true; //_Bool flag2 = false; //#define bool _Bool bool flag1 = true; bool flag2 = false; if (flag1) printf("hehe\n");//打印 if (flag2) printf("haha\n");//不打印 return 0; }

2各种数据类型的长度

每种数据类型都有自己的长度,不同数据类型能创造出不同长度的变量,变量长度不同,存储数据的范围也不同

2.1sizeof 操作符

  • sizeof是一个关键字,也是一个操作符,专门用来计算类型长度,单位是字节。
  • sizeof(类型) sizeof 表达式——其操作数可以是类型,也可以是变量或者表达式。类型要有括号,表达式可以省略括号。
  • sizeof后面的表达式不是真实参与计算的,根据表达式类型得出类型长度
  • sizeof的计算结果是size_t类型,size_t类型的数据打印是使用%zu
  • int main() { int a = 10; printf("%zu\n", sizeof(a)); 4 printf("%zu\n", sizeof a); 4 printf("%zu\n", sizeof(int)); 4 printf("%zu\n", sizeof(3 + 3.5)); 8 return 0; }

    计算机能识别的是二进制,存储一个二进制位需要的空间是1个比特位(1bit)

1Byte(字节) == 8bit(比特),1KB(千字节)== 1024B,1MB(兆字节)== 1024KB

1GB(吉字节)== 1024MB, 1TB(太字节)== 1024GB

参考资料:https://en.cppreference.com/w/c/language/arithmetic_types.html#.E6.95.B0.E6.8D.AE.E6.A8.A1.E5.9E.8B

2.2signed和unsigned

C语言使用signed和unsigned关键字修饰 字符型和整型类型。

  • signed 关键字,表示一个类型带有正负号,包含负值
  • unsigned 关键字,表示该类型不带正负号,只能表示零和正数
  • 对应int类型,默认是带正负号的,关键字signed一般都省略不写
  • char 类型默认是否带正负号,由当前系统决定,char可能是signed char(大部分是这个),也可能是 unsigned char,这一点与int不同,int 默认为 signed int
  • 字符类型也属于整型,字符的本质是ASCll值
  • size_t是无符号的整型类型

3.变量

3.1变量的创建

类型是用来创建变量的,C语言中把经常变化的值称为变量,不变的值称为常量

变量创建的语法形式

data_type name | | | | 数据类型 变量名

变量命名规则

  • 只能由字母(大小写)、数字、下划线(‘_')组成
  • 不能以数字开头
  • 长度不能超过63个字符
  • 变量中区分大小写
  • 变量名不能使用关键字,变量名最好有意义
  • 变量在创建时给一个初始值,叫做初始化(与赋值区分)
  • 创建变量时最好给一个值,将它初始化,局部变量不初始化,编译器会给一个未知的值或者报错。
int main() { int age = 0;//初始化 float scores; scores = 20.0f;//f表示单精度浮点数,赋值 return 0; }

3.2变量的分类

  • 全局变量:在大括号外部定义的变量(全局变量使用范围更广,整个工程要使用都可以)
  • 局部变量:在大括号内部定义的变量(使用范围比较局限,只能在自己所在的局部范围内使用)
  • 全局变量如果不初始化,编译器会指定为0;局部变量不初始化,编译器会给未知值。
int d = 100;//全局变量 int main() { //局部变量 int a = 10; int b = 20; printf("%d", a); printf("%d", d); return 0; }
  • 当全局变量和局部变量名字相同时,局部变量优先

变量创建的本质是向内存申请空间,全局变量和局部变量在内存存储在哪里呢?

内存分为三个区域:栈区、堆区、静态区

1、局部变量、函数参数 放在栈区

2、全局变量、静态变量 放在静态区

3、堆区是用来动态内存管理的(mallloc、calloc、realloc、free)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/11 5:08:22

智能电梯门禁(可视对讲联动梯控)方案实现梯控联动召梯、呼梯、访客联动功能,完全融入楼宇可视对讲门禁系统,核心通过协议对接 + 物理接线双重方式,保障乘梯权限管理与联动控制的稳定性。

这份清单非常专业&#xff0c;清晰地勾勒出了一套深度融入楼宇对讲系统的智能梯控解决方案。这不仅仅是设备的堆砌&#xff0c;更是一套通过协议对接和硬件联动&#xff0c;实现从“业主无感通行”到“访客精准授权”全场景覆盖的完整蓝图楼宇可视对讲门禁与梯控系统联动方案一…

作者头像 李华
网站建设 2026/6/18 13:31:10

Linux网络编程-UDP 广播原理与实战

一、UDP 广播核心概念 UDP 广播是指一台主机向所在子网&#xff08;同一局域网&#xff09;内的所有主机发送数据的通信方式&#xff0c;是 UDP 无连接特性的典型应用场景。 1.1 广播地址分类 类型格式 / 示例特点受限广播地址255.255.255.255① 不会被路由器转发&#xff1…

作者头像 李华
网站建设 2026/6/10 10:43:26

什么是RPKI

文章目录为什么需要RPKIRPKI是如何工作的RPKI功能扩展RPKI&#xff08;Resource Public Key Infrastructure&#xff0c;资源公钥基础设施&#xff09;是一种基于PKI&#xff08;Public Key Infrastructure&#xff0c;公钥基础设施&#xff09;的技术&#xff0c;专门用于验证…

作者头像 李华
网站建设 2026/6/25 2:22:57

销售额飙涨 2.5 倍,TACOS 直降 10 点!DeepBI 助力亚马逊卖家高效破局

亚马逊美国站卖家&#xff0c;谁没遇到过 “卖得多、赚得少” 的尴尬&#xff1f;深圳一家深耕美国站点的工厂卖家&#xff0c;就曾面临这样的困境——5月广告总销售额虽高&#xff0c;ACOS却高达30.58%&#xff0c;运营成本居高不下。直到邂逅DeepBI智能AI广告系统&#xff0c…

作者头像 李华