C语言为了描述世界里丰富的数据提供了许多种的数据类型,现在我们来详细介绍一下
int main()
{
int a =0;//将变量a定义为整型,接受整数数据
return 0;
}int main()
{
char ch ='a';//将变量ch定义为字符型,接受字符数据
return 0;
}int main()
{
char sh = 3.14;//将变量sh定义为单精度浮点型,接受小数数据
return 0;
}#include <stdbool.h>
int main()
{
bool a = ture;//或者_Bool a = true;将变量a定义为布尔型,存放逻辑值真或假
return 0;
}注意:使用布尔型数据要包含头文件<stdbool.h>
每个数据类型所占用的空间:我们需要使用操作符sizeof,它可以用来计算数据类型所占用的空间,其格式为sizeof (类型),sizeof 表达式,比如:

以上三种写法都可以,虽然变量名和表达式可以不用加括号,但是还是建议统一加上括号 接下来我们用这种方法来算出每种数据类型的大小,单位为字节:

由图可以看出各种类型的大小,此处不再赘述,同时不知道大家有没有发现一件有趣的事,int与long int的大小一致,double 与long double的大小一致,这是为什么呢?这是因为在C语言的规定中long int的大小只需要大于等于 int的大小就可以了,所以long int的大小可以为4也可以为8,double和long double也是同理 最后我们来介绍一下sizeof的返回值,C语言只规定是无符号整数,没有具体说明是整型还是长整型等等一系列数据类型,于是为了提高程序的可移植性,C语言提出了一个新的类型别名size_t,它的占位符为%zd,而不是使用整型的%d,具体占位符的作用和介绍将在介绍函数printf时细讲,请耐心观看

要计算它的大小只需一位一位相加,例如二进制数10110111转为十进制数的方法如图:


其中第一位1表示负数即-号,第一位如果为0就是正数,如果还不能理解,请自行搜索查看,此处介绍只是为计算数据类型的取值范围做铺垫
在C语言中,经常变化的值称为变量,不变的值称为常量,在之前我们了解了许多数据类型,它们就可以用来创建变量 创建变量的本质就是在内存中开辟一个空间,用来存放我们的数据,而能存放数据的多少和存放哪种数据就由我们的数据类型决定,创建格式为:数据类型 变量名,比如:
int age; //整型变量
char ch; //字符变量
double weight; //浮点型变量变量的分类:
**变量的初始化:**在创建变量时给一个初始值叫做初始化,比如:
int age = 0; //整型变量,初始化值为0我们需要注意两点:(1)在VS2022编译器中十分严谨,如果一个局部变量没有初始化就不让使用,局部变量一定要初始化(2)一个局部变量不初始化时它的值是随机的,全局变量没有初始化的时候默认是零
变量的存储:在学习C/C++时,我们会关注内存中的三个区域,栈区,堆区,静态区
操作符又叫运算符,属于双目操作符,操作符两边的数据叫做操作数,双目操作符就是在两边都分别有一个操作数的操作符,比如1+1,“+”这个操作符两边有两个操作符,所以属于双目操作符

如果/的两边都是整数,那么它就只会返回整数,5除以2的商为2,余数为1,所以结果为2,那怎么才能得到数学上5除以2等于2.5呢?很简单,我们只需要把5变成5.0或者把2变为2.0,或者两者都变即可,如图:

注意:小数默认会打印后六位

在变量创建时给一个值叫做初始化,在变量创建好后再给一个值,就叫做赋值,赋值操作符是=
int a = 3;
int b = 5;
int c = 0;
c = b = a+3;//从右往左依次进行赋值它的规则是从右往左依次进行赋值,先计算a+3等于6,再把它赋值给b,最后再把b赋值给c,虽然C语言提供这种赋值方式,但是更推荐拆开来写,既容易理解,又方便以后调试,比如上述代码可以写为:
int a = 3;
int b = 5;
int c = 0;
b = a+3;
c = b;int a = 10;
a = a+3;
a = a-2;为了简便写出,C语言提供了复合赋值方法,比如:
int a = 10;
a += 3;//相当于 a = a+3;
a -= 2;//相当于 a = a-2;像我们前面学的五个操作符都可以这样使用,+=,-=,*=,/=,%=,还有一些操作符也可以这样使用,后期再讲解
我们知道了双目操作符的定义,也就不难理解单目操作符了,就是它只有一个操作数,接下来我们进行详细的讲解:
int a = 2;
++a;//前置++
a++;//后置++它们的区别是前置++是先自增1,再进行其他操作,后置++是使用变量当前值,再对变量加一,前置++举例如下:

后置++举例如下:

在操作符中还有⼀种特殊的操作符是强制类型转换,语法形式很简单,形式如:(类型) 比如输入代码 int a = 3.14; 编译器会报警告,为了消除这个警告,我们可以使用强制类型转换:
int a = (int)3.14//a是int类型, 3.14是double类型(浮点型默认为double)
//两边的类型不⼀致,编译器会报警告
//这样就是将3.14强制类型转换为int类型,这种强制类型转换只取整数部分最后申明一点,强扭的瓜不甜,为了增强代码的可读性,减少出现bug的概率,除非迫不得已,否则不要使用强制类型转换