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. 堆区是用来动态内存管理的

相关推荐
大白同学42139 分钟前
初识Qt——创建第一个Qt项目
开发语言·qt
祈禾40 分钟前
计算机组成原理之编译、汇编、链接、解释
开发语言·汇编·笔记·学习
吴声子夜歌1 小时前
正则指引——Ruby
开发语言·正则表达式·ruby
nnerddboy1 小时前
Rust教程06:ESP32-rust环境搭建
开发语言·后端·rust
nnerddboy1 小时前
Rust教程03:函数,控制流与所有权
开发语言·后端·rust
小龙报1 小时前
【优选算法】1.搜索插入位置 2.x的平方根
java·c语言·数据结构·c++·python·算法·蓝桥杯
linux修理工1 小时前
内存占用 99% 且 Java 程序较多的优化建议
java·开发语言
weixin_460443561 小时前
企业考试系统如何对接OA、钉钉和企业微信?SSO单点登录、组织同步与权限一致性设计
java·开发语言·数据库
nnerddboy2 小时前
Rust教程05:结构体,枚举与模式匹配
开发语言·网络·rust
小小尚@2 小时前
AE脚本-AE Actions v1.1.8 操作动作记录器
开发语言·前端·javascript·jupyter·postman