数据类型和变量
目录
数据类型
内置数据类型
-
字符型
- char
-
整型
- short int long long long
-
浮点型
- float double long double
-
布尔类型
- 运用头文件<stdbool.h> true 或者 false
- _Bool flag = true;
自定义类型
- 数组
- 结构体-struct
- 枚举-enum
- 联合体-union
各种数据类型的长度
sizeof操作符
- sizeof(类型) sizeof 表达式(表达式不计算) sizeof返回值类型:size_t
signed和unsigned
signed 关键字,表⽰⼀个类型带有正负号,包含负值;-32768~32767,最⼤值是32767 unsigned 关键字,表⽰该类型不带有正负号,只能表⽰零和正整数。0~65535,最⼤值增⼤到了65,535
变量
创建
- data_type name;
- | |
- 数据类型 变量名
分类
- 全局变量:在⼤括号外部定义的变量就是全局变量 全局变量的使⽤范围更⼴,整个⼯程中想使⽤,都是有办法使⽤的。
- 局部变量:在⼤括号内部定义的变量就是局部变量 局部变量的使⽤范围是⽐较局限,只能在⾃⼰所在的局部范围内使⽤的。
操作符
算术
- C语⾔中为了⽅便运算,提供了⼀系列操作符,其中有⼀组操作符叫:算术操作符。分别是: + - * / % ,这些操作符都是双⽬操作符。 注:操作符也被叫做:运算符,是不同的翻译,意思是⼀样的。
- /两个运算数至少有一个浮点数:6.0/4 %返回两个值的余数,不能用浮点数
赋值
- 给变量赋值:int a = 100;
单目(++、--)
- 前置:先+1,后使用
- 后置:先使用,后+1
强制类型转换
就是将不是该类型的数据改为该类型:int a = (int)3.14;
printf和scanf
printf
- format(格式化)可以定制输出文本格式 ·不会在尾行自动添加换行符
- 可以在输出文本中指定占位符,“占位符”,就是这个位置可以用其他值代入。
- 参数与占位符是一一对应关系,如果有n个占位符,printf()的参数就应该有n+1个
-
格式
- %5d 表⽰这个占位符的宽度⾄少为5位。如果不满5位,对应的值的前⾯会添加空格。输出的值默认是右对⻬,左对齐加负号
- %12f 表⽰输出的浮点数最少要占据12位。由于⼩数的默认显⽰精度是⼩数点后6位, 所以 123.45 输出结果的头部会添加2个空格。
- ⼩数点后⾯输出3位( 0.500 ),占位符就要写成 %.3f
- %6.2f 表⽰输出字符串最⼩宽度为6,⼩数位数为2
scanf
- 也有占位符,占位符和后边的参数提供的地址一一对应
- 占位符%s表示读取一个字符串,遇到空白字符就停止读取。
- scanf需要包含stdio.h这个头文件的 ·处理数值占位符时,会自动过滤空白字符,包括空格、制表符、换行符,scanf输出字符占位符的时候,不忽略空白字符,总是返回当前第一个字符,无论该字符是否为空格。
占位符
- %c :字符。
- %d :整数。
- %f : float 类型浮点数。
- %lf : double 类型浮点数。
- %Lf : long double 类型浮点数。
- %s :字符串。
- %[ ] :在⽅括号中指定⼀组匹配的字符(⽐如 %[0-9] ),遇到不在集合之中的字符,匹配将会 停⽌。
- 除了 %c 以外,都会⾃动忽略起⾸的空⽩字符。 %c 不忽略空⽩字符,总是返回当前第⼀个字符,⽆论该字符是否为空格
- %s从当前第⼀个⾮空⽩字符开始读起,直到遇到空⽩字符(即空格、换⾏符、制表符等)为⽌
- 赋值忽略符 : %*c 就是在占位符的百分号后⾯,加⼊了赋值忽略符 * ,表⽰这个占位符没有对应的变量,解读后不必返回