C语言的数据类型和变量
引入
下表是YY同学的基本信息
姓名:YY
身高:175.6cm
体重:53kg
年龄:20
///
我们可以看到,在YY同学的信息中存在各种不同的数据,有小数,整数,还有字符,这些不同的数据类型在生活中十分常见,编程的目的是为了解决实际生活中的问题,计算机有能力来描述生活中的问题,以下就让我们了解一下C语言提供的各种数据类型吧!
各种类型中的分类了解即可,无需深究 :)
字符类型 char
// [ ]中的表示可以省略
分类如下:
char //character
[signed] char //有符号的
unsigend char //无符号的
整型 int
分类如下:
short [int]
[signed] short [int]
unsigned short [int]
//整型
int
[signed] int
unsigned int
//⻓整型
long [int]
[signed] long [int]
unsigned long [int]
浮点型 float
为什么叫做浮点型腻?
因为小数中的小数点可以左右浮动
比方说–>3.5 可以表示为0.35*10因此叫做浮点类型
分类如下:
float
double
long double
布尔类型 _Bool
使用该类型时要包含头文件<stdbool.h>
是一种表示真假的变量,只有两种取值:真或假,也就是true或者false
bool等同于_Bool
C语言中也规定了: 0表示假,非0表示真所以严格来讲布尔类型不是必须的
各种数据类型的长度
周知,各种数据类型所存储数据的长度不同。
YY同学提问了:如何测量每种数据类型的所存数据的长度呢?
sizeof操作符
- sizeof 是⼀个关键字,也是操作符,专⻔是⽤来计算sizeof的操作符数的类型⻓度的,单位是字节
- sizeof操作符的操作时可以是类型也可以是表达式
- sizeof计算结果的类型是sizeof_t,所以在打印其返回值时要用%zd来打印
int main()
{
int a = 10;
printf("%zd", sizeof(int));
printf("%zd", sizeof a );
return 0;
}
- C语言规定sizeof的返回值size_t可能是 unsigned int 也可能是 unsigned long int 具体由编译器来决定
signed 和 unsigned
- C 语⾔使⽤ signed 和 unsigned 关键字修饰字符型和整型类型
- signed 关键字,表⽰⼀个类型带有正负号,包含负值
- unsigned 关键字,表⽰该类型不带有正负号,只能表⽰零和正整数
- 对于 int 类型,默认是带有正负号的,也就是说 int 等同于 signed int 。由于这是默认情况,关键字 signed ⼀般都省略不写
- char的是否有符号取决于编译器
数据类型的取值范围
数据类型的取值范围放在 limits.h这个头文件中描述
想了解更多的hxd可以自行去IDE里测试
变量
以上是C语言的类型介绍,YY同学又提问了:学这么多类型是干什么用的呢?
答:类型是用来创建变量的
什么是变量
C语⾔中把经常变化的值称为变量,不变的值称为常量
变量的创建和初始化
char name = "YY";
float height = 180.0;
int weight = 100;
int age = 20;
通过以上YY同学的信息就可以理解创建变量的语法为 data_type name,在创建变量的时候给变量一个值,就成为变量的赋值
变量的分类
全局变量
在⼤括号外部定义的变量就是全局变量全局变量的使⽤范围更⼴,整个项目中想使⽤,都是有办法使⽤的。
局部变量
在⼤括号内部定义的变量就是局部变量,局部变量的使⽤范围是⽐较局限,只能在⾃⼰所在的局部范围内使⽤的。
#include <stdio.h>
int n = 10;
int main()
{
printf("%d", n);
return 0;
}
以上代码可以正常的输出n的值10
YY同学提问:如果局部变量和全局变量相同肿么办呢?
#include <stdio.h>
int n = 10;
int main()
{
int n = 100;
printf("%d", n);
return 0;
}
上述代码的输出结果是100,嗷~ 我们知道啦,变量在使用的过程中是遵循局部优先的原则
操作符
六个双目操作符(有两个操作数的操作符) + - * / % =
int main()
{
int a = 10;
int b = 20;
printf("%d", a+b);
printf("%d", a-b);
printf("%d", a*b);
printf("%f", 10/4.0);
printf("%d", a%b);
int c;
c = 30;
int d = 40;
d += 10;//此时d的值为50
return 0;
}
除法操作符tips
- 打印结果时用%f
- 两个操作数至少有一个是浮点数
取模操作符tips
- %操作符的作用是返回两个整数相除的余值
- 这个运算符只能⽤于整数,不能⽤于浮点数
- 负数取模的符号由第一个操作数决定
赋值操作符tips
- 赋值操作符可以连续赋值
- 赋值操作符可以复合赋值
两个单目操作符 ++ - -
int main()
{
int a = 5;
printf("%d", a++);//前置++
printf("%d", a);
int b = 3;
printf("%d", ++b);//后置++
printf("%d", b);
return 0;
}
自增自减操作符tips
- 一句话总结前置与后置:前置是先 ++ 后使用,后置是先使用后 ++( - - 同理哦)
总结
以上是C语言数据类型以及一些操作符的知识,我们要像捡贝壳一样捡到自己的小篮子里哦,有不明白的地方欢迎留言,作者水平有限,文章不妥部分还请各位读者指正。