news 2026/4/15 10:29:36

Day2:语言数据类型和变量

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Day2:语言数据类型和变量

1.数据类型介绍

所谓类型,就是指相似的数据所拥有的共同特征,例如整型,浮点型,字符型等等。编译器只有知道了数据的类型,才能知道怎么操作数据。数据类型是编程语言中用于定义变量或函数可以存储或处理的数据的种类。

1.1.字符型

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

1.2.整型

整型的英文单词是integer,在C语言中使用int表示整型类型。

1.3.浮点型

表示有小数部分的数字,在C语言中使用float来表示。

1.4.布尔类型

表示真或假,布尔类型的使用得包含头文件<stdbool.h>,取值是:true或false。用_Bool表示。

代码演示

_Bool flag = ture; if(flag) printf("i like c\n");

因为_Bool写起来太麻烦,后来C语言对其进行了优化,在头文件<stdbool.h>中重新定义了新名字bool

1.5各种数据类型的长度

每⼀种数据类型都有自己的长度,使⽤不同的数据类型,能够创建出长度不同的变量,变量长度的不同,存储的数据范围就有所差异。那什么是长度呢,长度就是数据类型在内存中占用的字节数。

常见数据类型的长度(64位系统)
数据类型通常长度(bytes)位数(bits)范围(大致)
char1字节8位-128到127
short2字节16位-32768到32767
int4字节32位-+21亿
long8字节64位-+9百亿亿
float4字节32位约7位小数
double8字节64位约15位小数
1.5.1sizeof操作符

sizeof是一个关键字,也是操作符,专门是用来计算sizeof的操作数的类型长度的,单位是字节(bytes)

sizeof操作符的操作数可以是类型,也可以是变量或表达式。如果是表达式的时候可以省略括号。

sizeof后面的表达式是不真实参与计算的,根据表达式的类型来得出大小。

sizeof计算结果是size_t类型的。

1.5.2数据类型长度

1.5.3sizeof中表达式不计算

从图中可知sizeof后面的表达式并没有计算,变量s打印出的值仍是12。b为int类型数据,1默认为int类型数据,b+1显然也是int类型数据。要将int类型数据存放到short类型数据(变量s)中就会发生截断,将int类型截断成short类型,其表达式类型仍然是short类型,sizeof计算其长度就是2个字节了。

sizeof在代码进行编译的时候,会根据表达式的结果的类型,确定类型的长度,而表达式真正要被运算和执行却要在程序运行期间才会发生,因为在编译期间就已经将sizeof处理掉了,所以在程序运行期间不会执行表达式,也就打印不出表达式运行的结果了。

2.signed和unsigned

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

signed关键词表示一个类型带有正负号,包含负值

unsigned关键词表示该类型不带有正负号,只能表示零和正整数

int等同于signed int

字符本身没有正负,但它在内存里最终只是一个整数(ASCII码),可以按照有符号整数解释。例如把这块内存解释为signed char时编译器就把它当成带符号的八位整数。

同一串二进制11111111因为有无正负号而表示不同

整数变量声明为 unsigned 的好处是,同样⻓度的内存能够表示的最⼤整数值,增⼤了⼀倍。 ⽐如,16位的 signed short int 的取值范围是:-32768~32767,最⼤是32767;⽽ unsigned short int 的取值范围是:0~65535,最⼤值增⼤到了65535。

3.数据类型的取值范围

4.变量

4.1变量的创建

C语言中把经常变换的值称为变量,不变的值叫常量。类型是用来创建变量的,声明变量为某个特定的类型。

变量创建的语法形式:

变量命名的一般规则:

  1. 只能由字⺟(包括⼤写和⼩写)、数字和下划线(`_`)组成。
  2. 不能以数字开头。
  3. ⻓度不能超过63个字符。
  4. 变量名中区分⼤⼩写的。
  5. 变量名不能使⽤关键字。

变量在创建的时候就给一个初始值,就叫初始化。

而创建好变量后再给他一个值叫做赋值

float score; score=20.0f//赋值

如果创建变量后没有初始化,打印出的值为随机数

4.2变量的分类

全局变量:在大括号外部定义的变量就是全局变量,其使用范围更广,整个工程中想使⽤,都是有办法使用的。

局部变量:在⼤括号内部定义的变量就是局部变量 局部变量的使⽤范围是⽐较局限,只能在⾃⼰所在的局部范围内使⽤的。

全局如果不初始化,编译器会指定为零,局部变量不初始化值随机。

当全局变量和局部变量的名字相同时,局部优先使用

变量创建的本质是向内存申请空间。

  1. 局部变量是放在内存的栈区
  2. 全局变量是放在内存的静态区
  3. 堆区是⽤来动态内存管理的
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 18:49:59

远程连接内网服务器

参考资料&#xff1a; https://blog.csdn.net/networken/article/details/137670459 Linux上 apt update -y apt install -y wireguard

作者头像 李华
网站建设 2026/4/13 17:28:39

Excalidraw批量操作支持吗?多选编辑效率评估

Excalidraw批量操作支持吗&#xff1f;多选编辑效率评估 在技术团队频繁进行架构设计、流程梳理和远程协作的今天&#xff0c;一个轻量又高效的绘图工具往往能决定一次会议的节奏。Excalidraw 就是这样一个“看起来简单&#xff0c;用起来上头”的开源白板工具——它没有繁复的…

作者头像 李华
网站建设 2026/4/14 21:31:39

ExcalidrawER图制作:数据库设计可视化

Excalidraw 与数据库设计&#xff1a;当手绘白板遇上智能建模 在一次产品评审会上&#xff0c;你是否经历过这样的场景&#xff1f;产品经理在纸上草草画出几个方框和连线&#xff0c;说&#xff1a;“我们大概需要一个用户表、订单表&#xff0c;它们之间是一对多关系……”而…

作者头像 李华
网站建设 2026/4/15 1:43:08

Excalidraw自动伸缩部署:Kubernetes集群实践

Excalidraw自动伸缩部署&#xff1a;Kubernetes集群实践 在远程协作日益成为常态的今天&#xff0c;团队对高效、直观的可视化工具需求急剧上升。Excalidraw作为一款开源手绘风格白板工具&#xff0c;凭借其极简设计和强大的实时协作能力&#xff0c;迅速在技术架构图绘制、产品…

作者头像 李华
网站建设 2026/4/14 21:32:45

Excalidraw CDN加速部署方案:全球访问提速

Excalidraw CDN加速部署方案&#xff1a;全球访问提速 在跨国团队协作日益频繁的今天&#xff0c;一个看似微小的技术细节——前端资源加载速度&#xff0c;往往成为决定产品体验生死的关键。设想一下&#xff1a;欧洲的产品经理正准备与印度的开发团队进行一场关键架构评审&a…

作者头像 李华