第2讲:C语言数据类型和变量

第2讲:C语言数据类型和变量

跟着潼心走,轻松拿捏C语言,困惑通通走,一去不回头~欢迎开始今天的学习内容,你的支持就是博主最大的动力

知识回顾

上节课我们学习了各种转义字符,语句及其分类还有两种注释,对C语言的常见概念有了基本的了解。今天我们来学习C语言的数据类型和变量,坐稳了,我们发车!


1.数据类型


1.1what

数据类型,就是用以描述C语言各种数据而产生的划分类型

比如说

整型类型 描述整数

字符类型 描述字符

浮点型类型 描述小数

##类型 指的就是相似的数据所拥有的共同特征,便于编译器识别,操作数据

主要有以下几类

下面我们来详细介绍一下


1.2字符型 

char   字符型//character

1.3整型

1)int   整型  //integer

(signed) int 有符号整型

   unsigned int   无符号整型

2)short int  短整型

(signed)short int 有符号短整型

   unsigned short int   无符号短整型

3)long int   长整型

long long (int) 更长的整型,C99引入

(signed)long long

   unsigned long long  

1.4浮点型

float

double

long double

1.5布尔类型

表示真假的类型,C99引入

我们也可以用0表示假,用非0值表示真

_Bool

使用时需要包含头文件<stdbool.h>

布尔类型变量取值是true 或 false

1.6各种数据类型长度

每⼀种数据类型都有自己的⻓度,使⽤不同的数据类型,能够创建出⻓度不同的变量,变量⻓度的不同,存储的数据范围就有所差异。


1.6.1sizeof操作符

sizeof既是关键字,又是操作符

用以计算操作符的操作数类型长度,单位是字节

操作数可以是类型,也可是变量或者表达式
表达式是不真实参与运算的,根据表达式的类型来得出大小
其运算结果是size_t类型的,用%zd打印

sizeof 运算符的返回值,C 语⾔只规定是⽆符号整数,并没有规定具体的类型,⽽是留给系统⾃⼰去决定, sizeof 到底返回什么类型。不同的系统,返回值的类型有可能是unsigned int ,也有可能是 unsigned long ,甚⾄是 unsigned long long ,对应的 printf() 占位符分别是 %u 、 %lu 和 %llu 。这样不利于程序的可移植性。C 语⾔提供了⼀个解决⽅法,创造了⼀个类型别名 size_t ,⽤来统⼀表⽰ sizeof 的返回值类型。对应当前系统的 sizeof 的返回值类型,可能是 unsigned int ,也可能是unsigned long long


1.5.2 数据类型长度

1.5.3 sizeof 中表达式不计算
 

sizeof 在代码进⾏编译的时候,就根据表达式的类型确定了,类型的常⽤,⽽表达式的执⾏却要在

程序运⾏期间才能执⾏,在编译期间已经将sizeof处理掉了,所以在运⾏期间就不会执⾏表达式了。

1.7signed 和 unsigned

关键字,用于修饰 字符型和整型 


整数变量声明为 unsigned 的好处是,同样⻓度的内存能够表⽰的最⼤整数值,增⼤了⼀倍。
unsigned int ⾥⾯的 int 可以省略,变量声明就长这样

在VS2022环境中,limits.h中相关定义

字符类型 char 也可以设置 signed 和 unsigned

char 不等于 signed char ,它有可能是 signed char ,也有可能是unsigned char 。

这⼀点与 int 不同, int 就是等于 signed int。

1.8数据类型的取值范围

limits.h  说明了整型类型的取值范围

float.h  说明浮点型类型的取值范围

为了代码的可移植性,需要知道某种整数类型的极限值时,应该尽量使⽤这些常量。

  •  SCHAR_MIN , SCHAR_MAX :signed char 的最⼩值和最⼤值。

  •  SHRT_MIN , SHRT_MAX :short 的最⼩值和最⼤值。

  •  INT_MIN , INT_MAX :int 的最⼩值和最⼤值。


  • LONG_MIN , LONG_MAX :long 的最⼩值和最⼤值。

  • LLONG_MIN , LLONG_MAX :long long 的最⼩值和最⼤值。

• UCHAR_MAX :unsigned char 的最⼤值。

• USHRT_MAX :unsigned short 的最⼤值。

• UINT_MAX :unsigned int 的最⼤值。

• ULONG_MAX :unsigned long 的最⼤值。

• ULLONG_MAX :unsigned long long 的最⼤值。

2.变量

类型是⽤来创建变量
经常变化的值称为变量,不变的值称为常量
变量创建的语法形式是这样的

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


2.1变量的分类
  •  全局变量:在⼤括号外部定义的变量就是全局变量,使⽤范围更⼴
  • 局部变量:在⼤括号内部定义的变量就是局部变量;局部变量的使⽤范围是⽐较局限,只能在⾃⼰所在的局部范围内使⽤的。

当局部变量和全局变量同名的时候,局部变量优先使⽤


##全局变量和局部变量在内存中存储在哪⾥呢
在学习C/C++语⾔的时候,我们会关注内存中的三个区域:栈区、堆区、静态区
 

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

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

3. 堆区是⽤来动态内存管理的(后期会介绍


好了今天的学习内容就到这里啦,谢谢你的陪伴,我是潼心,下次再见~如果这篇文章对你有帮助的话。请务必一键三连,球球了,这对主播很重要~

评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值