数据类型分为两种:内置类型 自定义类型。
内置类型可以理解为编译器自己拥有的类型,分别为:字符、整形、浮点型、布尔类型。
自定义类型是自己定义的类型,分别为:数组、结构体struct 、枚举enum、联合体union。
1.字符有三种类型:char(字符)、signed char(有符号 字符) 、unsigned char(无符号 字符)。
2.整型:短整型(short int 、signed short int 、unsigned short int)、整型(int、signed int、unsigned int)、长整型(long int、signed long int 、unsigned long int)、更长整型。
3.浮点型(可理解为小数):(float、double、long double)
4.布尔类型:_Bool
布尔类型是专门用来判断真假的类型
如果 定义的变量为非0则为真 为0则为假
#include <stdio.h> #include <stdbool.h> //使用时要添加该头文件 int main() { _Bool flag=1; while(flag)//while循环 括号内条件为真即运行 { printf("未来为我们未来\r\n"); } return 0; }
何为signed unsigned?
signed 可以理解为有符号的某个类型 一般类型前面什么都不加(不过char 类型是由系统决定 如果不注明signed 和unsigned可能是signed char 也可能是unsigned char)就是默认为有符号,可为正可为负。
unsigned:代表该数据类型只能是0和整数。
区别:signed 数据类型取值范围范围是unsigned一倍。
数据类型的取值范围
取值范围只需要记住一些常见的数据类型取值范围就可以了。
如果想要了解详细取值范围,可以在VS附带文件中找到limits.h查看整数类型取值范围,float.h中查看浮点型取值范围。
如何创建变量?有哪几种变量?
创建变量语法:数据类型 变量名;其中变量名是程序与会自己定义,不过不能与关键词冲突,不然将无法运行,在创建时给予一个初始值,就叫做初始化。
#include <stdio.h> int main() { int age=19; char ch='b'; float num=3.14; return 0; }
变量分为:全局变量、局部变量。
全局变量:顾名思义定义的变量可以在任意位置使用。不过必须写在main函数前。
#include <stdio.h> int a=10; int main() { printf("%d",a); return 0; }
局部变量:只能在其{}中使用。
#include <stdio.h> int main() { int a=10;//该10可以在{}任意使用 { int b=20; } printf("%d %d",a,b);//此处因为b在嵌套的{}中 b是无法使用的 return 0; }
算术操作符
算数操作符就是我们常见的+、-、*、/、%。
这些操作符称为双目运算符(可理解为两个整数进行运算)。
下面使用代码演示+、-、*、/、%
#include <stdio.h> int main() { int a=10; int b=20; int c=0; c=a+b; printf("%d ",c);//30 c=a-b; printf("%d ",c);//-10 c=a*b; printf("%d ",c);//200 c=a/b; printf("%d ",c);//0 c=a%b; printf("%d ",c);//10 return 0; }
其中/ ,如果定义的变量类型是整型,而答案是小数时,自动将小数忽略(不存在四舍五入)如果想要答案是小数则接受答案变量数据类型是浮点型,且运算的两个变量必须有一个要写成浮点数。
#include <stdio.h> int main() { flaot c=0; c=10.0/20;//运算的两个变量必须有一个要写成浮点数。 printf("%f",c); return 0; }
%称为取余运算符:可以用来求余数或者判断一个整数是否被另外一个整数整除(可以理解为%于分子为0即为被整除)。
#include <stdio.h> int main() { int a=0;//只能用于整数 a=10%3;//a为1 a=-10%3;//a为-1 变量是否为负由第一个变量决定 a=10%-3;//a为1 return 0; }
赋值操作符
创建一个变量并使用=给与变量一个值就是赋值。
注:=是赋值 ==是等于。
复合赋值:+=、-=、/=、*=、%=、<<=、>>=、&=、|=、^=
#include <stdio.h> int main(void) { int a=10; a+=3;//可拆分为 a=a+3 大大方便代码书写 其它同此 return 0; }
单目操作符
顾名思义只有一个变量进行运算。单目操作符有:++(前后置++) 、–(前后置–)、+(正)、-(负)
++、–运算法则:a++等同为a=a+1;a–等同于a=a-1;
+ -就是给变量定义正负 一般不加符号默认为+ 打印也会省略+号 ,如果想显示+号在%d中添加+号即可。
#include <stdio.h> int main() { int a=10; int b=0; int c=0; b=a++;//后置是先运算再++ 则此处b不会赋值为a+1,会先打印10 c=++a;//先+1 再运算 --同++ printf("%d",a,b,c);//故打印值为 12 10 12 return 0; } ## 强制类型转换 ### 语法 :(数据类型) ```c #include <stdio.h> int main() { int a=3.14;//会报警告 int a=(int)3.14;//如果你不想出现警告可以直接使用(int) 就可以把它转化为整型 printf("%d",a);//3 return 0; }