news 2026/4/23 9:53:16

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/20 2:34:35

基于Spring Boot技术的数字乡村农作物智慧管理系统设计毕设

博主介绍&#xff1a;✌ 专注于Java,python,✌关注✌私信我✌具体的问题&#xff0c;我会尽力帮助你。一、研究目的本研究旨在设计并实现一套基于Spring Boot技术的数字乡村农作物智慧管理系统。该系统旨在通过整合现代信息技术与农业管理实践&#xff0c;提升我国乡村农作物生…

作者头像 李华
网站建设 2026/4/16 15:42:56

Excalidraw手势识别优化:触屏操作新体验

Excalidraw手势识别优化&#xff1a;触屏操作新体验 在平板和触控笔记本日益普及的今天&#xff0c;用户早已不再满足于“能用”的数字工具——他们想要的是那种指尖划过屏幕时&#xff0c;笔迹如墨水般自然流淌、缩放如同翻阅纸质草图般顺滑的体验。正是在这种期待下&#xff…

作者头像 李华
网站建设 2026/4/23 6:34:21

Excalidraw图片懒加载优化:减少初始请求量

Excalidraw图片懒加载优化&#xff1a;减少初始请求量 在协作型白板工具日益普及的今天&#xff0c;用户对“打开即用”的响应速度要求越来越高。一个包含数十张插图的Excalidraw项目&#xff0c;若在进入页面时就发起全部图像请求&#xff0c;不仅会让首屏卡顿、延迟明显&…

作者头像 李华
网站建设 2026/4/18 11:13:59

LangSmith 模型评估 (Evaluation) 完整指南

本文档将手把手教你如何使用 LangSmith 对 LLM&#xff08;如 Gemini, DeepSeek, GPT&#xff09;进行自动化评估和对比。 1. 注册与准备 1.1 注册账号 访问 LangSmith 官网。此处需要魔法使用 GitHub 或 Google 账号登录。注意&#xff1a;LangSmith 分为 US (美国) 和 EU (…

作者头像 李华
网站建设 2026/4/21 17:56:33

Excalidraw搜索功能实测:快速定位画布元素

Excalidraw 搜索功能实测&#xff1a;如何让复杂画布“一搜即达” 在一次远程架构评审会议中&#xff0c;团队面对一张包含上百个组件的系统拓扑图。产品经理突然问道&#xff1a;“我们再看一下用户认证流程的设计。” 如果没有搜索功能&#xff0c;接下来的画面可能是——开发…

作者头像 李华