c语言-2-数据类型和变量

c语言中的数据类型分类:

"类型",就是相似的数据所拥有的共同特征,编译器只有知道了数据的类型,才知道怎么操作

数据。

字符型

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

复制代码
char //character
[signed] char //有符号的
unsigned char //无符号的

整型

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

复制代码
//整数 - integer
//短整型
short [int]
[signed] short [int]
unsigned short [int]
//整型
int
[signed] int
unsigned int
//长整型
long [int]
[signed] long [int]
unsigned long [int]
//更长的整型
//C99中引入
long long [int]
[signed] long long [int]
unsigned long long [int]

浮点型

在数学中小数的形式就是浮点型

复制代码
float //单精浮点型
double //双精浮点型
long double //精度更高的浮点型

布尔类型

C 语言原来并没有为布尔值单独设置一个类型,而是使用整数 0 表示假,非零值表示真。

在 C99 中也引入了 布尔类型 ,是专门表示真假的。

复制代码
_Bool

布尔类型的使用得包含头文件 <stdbool.h>

布尔类型变量的取值是: true 或者 false .

数据类型的长度计算

sizeof 操作符

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

字节。sizeof 的计算结果是 size_t 类型的。(size_t -----%zd(%zu))

signed 和 unsigned

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

signed :有符号的,表示一个类型带有正负号,包含负值;

unsigned :无符号的,表示该类型不带有正负号,只能表示零和正整数。

1.int类型
复制代码
int 类型
int = signed int 
 signed 一般都省略不写

若表示非负整数,则必须使用关键字 unsigned 声明变量。

复制代码
unsigned int a;
unsigned int 里面的 int 可以省略,所以上面的变量声明也可以写成下面这样。
unsigned a;

整数变量声明为 unsigned 的好处是,同样长度的内存能够表示的最大整数值,增大了一倍。
比如,16位的 signed short int 的取值范围是:-32768~32767,最大是32767;而
unsigned short int 的取值范围是:0~65535,最大值增大到了65535。
2.char类
复制代码
signed char c; // 范围为 -128 到 127
unsigned char c; // 范围为 0 到 255

C 语言规定 char 类型默认是否带有正负号,由系统决定。这就是说, char 不等同于 signed char ,它有可能是 signed char ,也有可能是unsigned char 。与 int 不同。

变量

变量的创建

前面我们了解了类型,我们就可以使用类型来创建变量。

C语言中把经常变化的值称为变量,不变的值称为常量。

复制代码
date_type name;
数据类型   变量名


变量命名的一般规则:
• 只能由字母(包括大写和小写)、数字和下划线(`_`)组成。
• 不能以数字开头。
• 长度不能超过63个字符。
• 变量名中区分大小写的。
• 变量名不能使用关键字。

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

复制代码
int age = 18;
char ch = 'w';
变量的分类

• 全局变量:在大括号外部定义的变量就是全局变量

全局变量的使用范围更广,整个工程中想使用,都是有办法使用的。

• 局部变量:在大括号内部定义的变量就是局部变量

局部变量的使用范围是比较局限,只能在自己所在的局部范围内使用的。

全局变量和局部变量在内存中存储在哪里呢?

内存中的三个区域:栈区、堆区、静态区。

  1. 局部变量是放在内存的栈区

  2. 全局变量是放在内存的静态区

  3. 堆区是用来动态内存管理的

相关推荐
z落落26 分钟前
C#WinForm控件实战:Panel与单选框动态创建
开发语言·c#
ptc学习者26 分钟前
python 中描述符@property property 大概的样子
开发语言·python
zmzb010328 分钟前
Python课后习题训练记录Day129
开发语言·python
张忠琳37 分钟前
【Go 1.26.4】Golang Map 深度解析
开发语言·后端·golang
Vertira37 分钟前
如何对QT开发的软件进行打包[已解决]
开发语言·qt
AI人工智能+电脑小能手39 分钟前
【大白话说Java面试题 第110题】【并发篇】第10题:CAS 存在哪些问题?
java·开发语言·面试
石一峰6991 小时前
C 语言函数设计模式实战经验
c语言·开发语言·设计模式
sitellla1 小时前
Pydub:用 Python 处理音频,不写废话
开发语言·python·其他·音视频
xingyuzhisuan1 小时前
缓存命中率提升方案:从 30% 优化至 82% 全流程优化记录
java·开发语言·缓存·ai
郑洁文1 小时前
基于Python的恶意流量监测系统的设计与实现
开发语言·python