数据类型介绍
不同数据类型的长度不同
1.字符型
char是有符号无符号是不确定的,是取决于编译的实现。
大部分的编译器上char==signed char
2.整形
int==signed int
对于有符号的整数打印应该使用%d
对于无符号的整数打印应该使用%u
3.浮点型
4.布尔类型
表示真/假的变量--布尔值,即_Bool
布尔类型的使用需要包含头文件<stdbool.h>,布尔类型变量的取值是:true或者false。
早期C语言中的规定,0表示假,非0表示真。
布尔类型的长度为1.
sizeof操作符
sizeof专门用于计算其操作符数类型长度的,单位是字节。
其操作符的操作数可以是类型也可以是变量或者是表达式。
sizeof的操作数如果不是类型,是表达式的时候,可以省略掉后边的括号。
sizeof后边的表达式是不真实参与运算的,根据表达式的类型来得出大小。
sizeof的计算结果是size_t类型的,且此类型打印时需要用%zd进行打印,因为sizeof运算符的返回值在C语言中之规定无符号整数,并未规定具体的类型,所以现在提出了一个解决方法,那就是创造一个类型别名size_t,用来统一表达sizeof的返回值类型。
signed和unsigned
C语言使用signed和unsigned关键字修饰字符型和整数类型的。
signed关键字,表示一个类型带有正负号,包含负值。
unsigned关键字,表示该类型不带有正负号。只能表示零和正整数。
整数变量声明为unsigned的好处是,同样长度的内存能够表示的最大整数值,增大了一倍。如:16位的signed short int的取值范围是:-32768-32767,最大是32767.而unsigned short int的取值范围是:0-65535.
变量
变量的创建
使用类型用来创建变量,类型的语法形式是这样:
创建变量的同时给予一个值,叫做初始化。
已经创建好的变量,给予一个值,叫做赋值。
变量又分为两类:
1.全局变量
在大括号外部定义的变量就是全局变量
2.局部变量
局部变量的使用范围是比较局限,只能在自己所在的局部范围内使用。
局部变量和全局变量都可以使用的时候,局部变量优先使用。
局部变量是放在内存的栈区;全局变量是放在内存的静态区;堆区是用来动态内存管理的。
算数操作符(双目)
+、-、*、/、%,这些操作符都叫做双目操作符,且操作符也叫做运算符。
除号的两端如果是整数,执行的是整数除法,所得到的结果也是整数;如果想要得到浮点数的结果,两个运算符中必须至少有一个是浮点数,C语言才会进行浮点数除法运算。
%表示取余运算,即返回两个整数相除的余值,这个运算符只能用于整数,不能用于浮点数。
负数求模的规则:结果的正负号,取决于第一个操作数的正负号。
赋值操作符
赋值操作符也可以连续赋值,但是不建议,容易出错,建议把代码拆开写。
复合赋值符
单目操作符
++、--、+、-,这些操作符都是单目操作符
前置++,后置++
--同理。
+、-
运算符+对于正负值没有影响,是一个完全可以省略的运算符。
运算符-用来改变一个值的正负号,负数的前面加上-就会得到正数,正数的前面加上-就会得到负数。
强制类型转换
操作符不同时才考虑强制转换。