news 2026/7/3 13:00:08

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/7/2 16:21:52

OpenDDS性能测试框架Bench

1、性能测试框架Bench简介 1.1 简介 OpenDDS性能测试框架Bench,基于config配置文件,来设定消息传输协议和测试场景,并通过测试结果文件进行分析和汇总。 1.2 测试配置 性能测试框架Bench的配置,分传输协议配置、测试场景配置两类。 1.2.1 传输协议配置 发现模式

作者头像 李华
网站建设 2026/6/26 11:48:52

递归算法和回溯算法

一.递归算法1.什么是递归递归是一种在计算机科学和数学中广泛使用的重要概念&#xff0c;它指的是一个函数或算法直接或间接地调用自身来解决问题的方法。在二叉树的前中后序遍历中,我们也经常使用递归实现2.核心思想递归将复杂问题分解为更小的、相似的子问题&#xff0c;通过…

作者头像 李华
网站建设 2026/7/2 22:24:38

“LLM Agents × 工作流编排/Orchestration”研究展望

文献综述&#xff08;围绕“LLM Agents 工作流编排/Orchestration”&#xff09; 1&#xff09;研究对象从“单个 Agent”走向“可组合的工作流系统” 从条目描述看&#xff0c;2024–2025 年的研究明显把关注点从“一个更强的 agent”转向“多个 agent 多工具 多阶段流程如…

作者头像 李华
网站建设 2026/7/1 15:21:42

Excalidraw复制粘贴跨页面操作技巧

Excalidraw复制粘贴跨页面操作技巧 在现代技术团队的协作场景中&#xff0c;一张草图往往比千言万语更有效。无论是产品原型讨论、系统架构设计&#xff0c;还是敏捷会议中的即兴勾画&#xff0c;可视化表达已成为信息传递的核心方式。而当这些草图不再局限于单页白板&#xff…

作者头像 李华
网站建设 2026/7/3 17:47:03

Excalidraw响应式设计能力:适配不同屏幕尺寸

Excalidraw 响应式设计能力&#xff1a;适配不同屏幕尺寸 在远程协作日益成为常态的今天&#xff0c;团队成员可能身处不同时区、使用不同设备&#xff0c;却需要对同一份架构图或流程设计达成共识。这种背景下&#xff0c;虚拟白板工具不再只是“画图”的辅助软件&#xff0c…

作者头像 李华