⽬录
1. 数据类型介绍
2. signed 和 unsigned
3. 数据类型的取值范围
4. 变量
5. 算术操作符:+、-、*、/、%
6. 赋值操作符:=和复合赋值
7. 单⽬操作符:++、--、+、-
8. 强制类型转换
9. scanf和printf介绍
正文
1. 数据类型介绍
C语⾔提供了丰富的数据类型来描述⽣活中的各种数据。
整型类型描述整数,字符类型描述字符,浮点型类型描述小数。
编译器只有知道了数据的类型,才知道怎么操作数据。以下主要探讨内置数据类型。
1.1 字符型
char [signed]char unsigned char
1.2 整型
//短整型 short[int] [signed] short[int] unsigned short[int] //整型 int signed[int] unsigned int //长整型 long [int] [signed] long[int] unsigned long[int] //更长的整型 //C99中引入 long long[int] signed long long[int] unsigned long long[int]
1.3 浮点型
float double long double
1.4 布尔类型( 专⻔表⽰真假的 )C 语⾔原来并没有为布尔值单独设置⼀个类型,⽽是使⽤整数 0 表⽰假,⾮零值表⽰真。在 C99 中也引⼊了 布尔类型 ,是专⻔表⽰真假的。
布尔类型的使⽤得包含头⽂件 <stdbool.h>布尔类型变量的取值是:true或者false代码演示:#include <stdio.h> #include<stdbool.h> int main() { _Bool flag = true; if (flag) printf("i like C\n"); return 0; }
1.5 各种数据类型的⻓度每⼀种数据类型都有⾃⼰的⻓度,使⽤不同的数据类型,能够创建出⻓度不同的变量,变量⻓度的不 同,存储的数据范围就有所差异。1.5.1 sizeof操作符(返回值类型 size_t,占位符%zd )sizeof 是⼀个关键字,也是操作符,专⻔是⽤来计算sizeof操作符数的类型⻓度的,单位是字节。sizeof 操作符的操作数可以是类型,也可是变量或者表达式。sizeof(数据类型) sizeof 表达式
sizeof 运算符的返回值,C 语⾔只规定是⽆符号整数,没有规定具体的类型。
C 语⾔提供了⼀个解决⽅法,创造了⼀个类型别名 size_t ,⽤来统⼀表⽰ sizeof 的返回值类型。2. signed 和 unsignedC 语⾔使⽤ signed 和 unsigned 关键字修饰字符型和整型类型的。signed 关键字,修饰的字符型和整型有符号。unsigned 关键字,修饰的字符型或整型无符号。整型int 默认带符号字符型float/double 默认是否带符号有当前系统决定3. 数据类型的取值范围每⼀种数据类型有⾃⼰的取值范围,也就是存储的数值的最⼤值和最⼩值的区间,有了丰富的类型,我们就可以在适当的场景下去选择适合的类型。如果要查看当前系统上不同数据类型的极限值:limits.h ⽂件中说明了整型类型的取值范围。float.h 这个头⽂件中说明浮点型类型的取值范围。4. 变量4.1 变量的创建类型是⽤来创建变量的。C语⾔中把经常变化的值称为变量,不变的值称为常量。变量创建的语法:1 data_type name; 2 | | 3 | | 4 数据类型 变量名
比如:
1 int age; //整型变量 2 char ch; //字符变量 3 double weight; //浮点型变量
变量的初始化,变量在创建的时候就给一个初始值
int age = 18; char ch = 'a'; double weight = 55.0;
4.2 变量的分类
变量分为全局变量(存储在静态区)和局部变量(存储在栈区)
全局变量:在⼤括号外部定义的变量就是全局变量局部变量:在⼤括号内部定义的变量就是局部变量当局部变量和全局变量同名的时候,局部变量优先使⽤。(就近原则)5. 算术操作符:+、-、*、/、%C语⾔中为了⽅便运算,提供了⼀系列操作符,其中有⼀组操作符叫:算术操作符(运算符)。分别是: + - * \ % ,这些操作符都是双⽬操作符(即有两个操作数)。+操作符完成加法 -操作符完成减法 *操作符完成乘法/操作符完成除法除号的两端如果是整数,执⾏的是整数除法,得到的结果也是整数。如果希望得到浮点数的结果,两个运算数必须⾄少有⼀个浮点数,这时 C 语⾔就会进⾏浮点数除法。运算符 % 表⽰求模运算,即返回两个整数相除的余值。这个运算符只能⽤于整数,不能⽤于浮点数。负数求模的规则是,结果的正负号由第⼀个运算数的正负号决定。6. 赋值操作符: = 和复合赋值在变量创建的时候给⼀个初始值叫初始化,在变量创建好后,再给⼀个值,这叫赋值。赋值操作符 = 是⼀个随时可以给变量赋值的操作符。复合赋值符在写代码时,我们经常可能对⼀个数进⾏⾃增、⾃减的操作,如:int a = 10; a = a+3; a = a-2; //更加方便的写法 int a = 10; a += 3; a -= 2;
C语⾔中提供了复合赋值符,⽅便我们编写代码,这些赋值符有:+= -= *= /= %= >>= <<= &= |= ^=
7. 单⽬操作符:++、--、+、-++、--、+(正)、-(负) 就是单⽬操作符7.1 ++和--++是⼀种⾃增的操作符,⼜分为前置++和后置++,--是⼀种⾃减的操作符,也分为前置--和后置--.7.1.1 前置++计算⼝诀:先+1,后使⽤;7.1.2 后置++计算⼝诀:先使⽤,后+17.1.3 前置--计算⼝诀:先-1,后使⽤7.1.4 后置--计算⼝诀:先使⽤,后-18. 强制类型转换(不到万不得已的时候不使⽤)在操作符中还有⼀种特殊的操作符是强制类型转换,语法形式很简单,形式如下:(类型)
示例
1 int a = (int)3.14;//意思是将3.14强制类型转换为int类型,这种强制类型转换只取整数部分
9. scanf(输入)和printf(输出)介绍9.1 printf9.1.1 基本⽤法printf() 的作⽤是将参数⽂本输出到屏幕。它名字⾥⾯的 f 代表 format (格式化),表⽰可以 定制输出⽂本的格式。9.1.2 占位符(%xx)printf() 可以在输出⽂本中指定占位符。所谓 “占位符”,就是这个位置可以⽤其他值代⼊。9.1.3 常用占位符列举%c :字符。%d :⼗进制整数。%f :⼩数(包含 float 类型和 double 类型)。%p :指针。%s :字符串。%u :⽆符号整数9.1.4 输出格式printf() 可以定制占位符的输出格式。9.1.4.1 限定宽度printf() 允许限定占位符的最⼩宽度。%5d 表⽰这个占位符的宽度⾄少为5位。如果不满5位,对应的值的前⾯会添加空格。输出的值默认是右对⻬,即输出内容前⾯会有空格;左对⻬(%后加-),%-5d对于⼩数,这个限定符会限制所有数字的最⼩显⽰宽度。%12f 表⽰输出的浮点数最少要占据12位。由于⼩数的默认显⽰精度是⼩数点后6位,所以 123.45 输出结果的头部会添加2个空格。9.1.4.2 限定⼩数位数( 可以与限定宽度占位符,结合使⽤ )输出⼩数时,有时希望限定⼩数的位数。举例来说,希望⼩数点后⾯只保留两位,占位符可以写成 %.2f 。 %6.2f 表⽰输出字符串最⼩宽度为6,⼩数位数为2。9.1.4.4 输出部分字符串%s 占位符⽤来输出字符串,默认是全部输出。如果只想输出开头的部分,可以⽤ %.[m]s 指定输出 的⻓度,其中 [m] 代表⼀个数字,表⽰所要输出的⻓度。9.2 scanf当我们有了变量,我们需要给变量输⼊值就可以使⽤ scanf 函数,如果需要将变量的值输出在屏幕上 的时候可以使⽤ prinf 函数,scanf() 的语法跟 printf() 类似。9.2.1 基本⽤法scanf() 函数⽤于读取⽤⼾的键盘输⼊。程序运⾏到这个语句时,会停下来,等待⽤⼾从键盘输⼊。⽤⼾输⼊数据、按下回⻋键后, scanf() 就会处理⽤⼾的输⼊,将其存⼊变量。它的原型定义在头⽂件 stdio.h 。scanf() 的语法跟 printf() 类似。scanf("%d", &i);