C语言的数据类型与变量

1.数据类型(暂时先了解内置类型)

1.字符型(character)(【】内的代表可加可不加,整型也是如此)

2.整型

3.浮点型

4.布尔类型(用于表示真/假)

需要注意的是,C语言中也可使用整数0表示假,非零值表示真

并且在使用布尔类型时需要包含头文件<stdbool.h>,布尔变量的取值是true或者false

也可使用整数0与其他非零值来表示真假如下图

或者也可如下表示真假

2.各种数据类型的长度

每⼀种数据类型都有⾃⼰的⻓度,使⽤不同的数据类型,能够创建出⻓度不同的变量,变量⻓度的不
同,存储的数据范围就有所差异。
1.sizeof操作符
sizeof 是⼀个关键字,也是操
作符,专⻔是⽤来计算sizeof操作符数的类型⻓度的,单位是 字节
sizeof 操作符的操作数可以是类型,也可是变量或者表达式
我们首先对字节有个了解
对于使用sizeof操作符,由于其操作结果为size_t类型,所以其对应的占位符最好使用%zd
且需注意
我们仍需注意的是, sizeof中的表达式不计算,
sizeof 在代码进⾏编译的时候,就根据表达式的类型确定了,⽽表达式的执⾏却要在
程序运⾏期间才能执⾏,在编译期间已经将sizeof处理掉了,所以在运⾏期间就不会执⾏表达式了。
由此便可看出sizeof中的表达式并不会计算。

2.signed与unsighed

C 语⾔使⽤ signed unsigned 关键字修饰字符型整型类型的(无浮点型)
signed 关键字,表⽰⼀个类型带有正负号,包含负值;
unsigned 关键字,表⽰该类型不带有正负号,只能表⽰零和正整数。
对于 int 类型,默认是带有正负号的,也就是说 int 等同于 signed int
由于这是默认情况,关键字 signed ⼀般都省略不写。
int 类型也可以不带正负号,只表⽰⾮负整数。这时就 必须使⽤关键字 unsigned 声明变量。
整数变量声明为 unsigned 的好处: 同样⻓度的内存能够表⽰的最⼤整数值 增⼤了⼀倍
⽐如,16位的 signed short int 的取值范围是:-32768~32767,最⼤是32767;⽽
unsigned short int 的取值范围是:0~65535,最⼤值增⼤到了65,535。
unsigned int ⾥⾯的 int 也 可以省略。

而对于char型我们需要格外注意,C 语⾔规定 char 类型默认是否带有正负号,由当前系统决定。

这就是说, char 不等同于 signed char ,它有可能是 signed char ,也有可能是
unsigned char
这⼀点与 int 不同, int 就是等同于 signed int

3.数据类型的取值范围

其实每⼀种数据类型有⾃⼰的取值范围,也就是存储的数值的最⼤值和最⼩值的区间,如果要查看当前系统上不同数据类型的极限值: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 的最⼤值

4. 变量

1.变量的创建

我们了解类型的目的就是用于创建变量,变量是经常变化的值,不变的值叫常量。

变量创建的语法:

如此例

而变量创建时我们应该给其一个初始值使其初始化2.bi

2.变量的分类

全局变量:在⼤括号外部定义的变量就是全局变量
全局变量的使⽤范围更⼴,整个⼯程中想使⽤,都是有办法使⽤的。
局部变量:在⼤括号内部定义的变量就是局部变量
局部变量的使⽤范围是⽐较局限,只能在⾃⼰所在的局部范围内使⽤的。
由此图可较清晰了解其区别
特性:局部变量优先性
当局部变量和全局变量 同名 时,局部变量优先使用

那么局部变量与全局变量在内存中储存在哪里呢?

⼀般我们在学习C/C++语⾔的时候,我们会关注
内存中的三个区域:栈区、堆区、静态区。
1. 局部变量是放在内存的栈区
2. 全局变量是放在内存的静态区
3. 堆区是⽤来动态内存管理的
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZRFoever

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值