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

相关推荐
白露与泡影3 小时前
金三银四高频 Java 面试题及答案整理 (建议收藏)
java·开发语言
小杍随笔3 小时前
【Rust 半小时速成(2024 Edition 更新版)】
开发语言·后端·rust
REDcker3 小时前
ARMv8、AArch64 与 arm64:命名与体系结构要点
开发语言·c++·arm
LXXgalaxy3 小时前
Uni-app 小程序页面跳转带参实战笔记(含对象传参与防坑)
开发语言·前端·javascript
oi..3 小时前
Flag和JavaScript document有关
开发语言·前端·javascript·经验分享·笔记·安全·网络安全
ZTLJQ3 小时前
数据的另一面:Python中NoSQL数据库完全解析
开发语言·python·nosql
烧饼Fighting3 小时前
java+vue推rtsp流实现视频播放(由javacv+ffmpg转为vlcj)
java·开发语言·音视频
波波0073 小时前
每日一题:请解释 .NET中的内存模型是什么
开发语言·c#·.net
敏编程3 小时前
一天一个Python库:soupsieve - CSS 选择器在 Beautiful Soup 中的力量
开发语言·css·python