转义字符:
- ‘\a’ : vision、sound alert
- ‘\b’ : backspace
- ‘\f’ : change cursor to the top of next page
- ‘\n’ : change line
- ‘\r’ : carriage return
- ‘\t’ : vertical form
- ‘\v’ : horizontal form
- ‘\101’ octal of ACSII
- ‘\x41’ hex of ACSII
常变量、符号常量:
1 2 3 4 5 6 7 8
|
#define PI 3.14
const float pi = 3.14
|
标识符:
- 只能 字母、数字、下划线 组成
- 开头只能 字母、下划线
字符型数据:
ACSII字符集
- 000:表示NULL
- 字母: (大小写 52个)
- 数字: (0~9 10个)
- 专门符号: (29个)
- 空格符: \space、\t、\v、\n、\f (5个)
- 不能显示的字符: null(\0)、 alert(\a) 、bcakspace(\b)、 carriage return(\r)…
字符型数据的存储空间
类型 |
字节数 |
取值范围 |
tips |
singed char |
1 |
-2^7 ~ (2^7-1) |
这里的-0 ,转换为补码为1000 0000 [表示-128];+0 ,转换为补码:0000 0000 [表示0] |
unsinged char |
1 |
0 ~ (2^8-1) |
* |
关于-0
与+0
的问题
实型数据
类型 |
字节数 |
有效数字 |
float |
4 |
6 |
double |
8 |
15 |
long double (visual C++) |
8 |
15 |
long double (Turbo C) |
16 |
19 |
注意: C程序中的实型常量都作为双精度浮点数常量。
1 2 3 4
| float a = 3.1415926f
long double a = 1.23L
|
c语言中的除法
`
- 1.两个实数相除 -> 双精度实数
- 2.两个整数相除 -> 整数
`
注意: 在多数C的编译系统中,整数除法采用 "向零取整" 的方法,
1如:5/3 = 1, -5/3=-1
注意: % (取余)运算符 要求运算对象必须位整数)
c语言中的自增、自减运算符
1 2 3 4 5 6
| int j; int i = 3;
j = ++i; (i的值先变成4,再赋值给j)
j = i++; (先将i的值3赋值给j,j=3,然后i再变成4)
|
格式字符c的注意点:
一个整数如果在0~127范围中,也可以用%c,使其按照ASCII码中对应的字符输出
注意:如果一个整数过大,则会把该数的最后的一个字节信息以字符形式输出
(相当于截断了最后的8个bit,然后以字符形式%c输出)
printf函数中的格式字符:
格式字符 |
说明 |
d,i |
带符号的十进制整数(正数不输出符号) |
o |
八进制五符号形式输出整数(不输出前导符 o) |
x,X |
十六进制输出整数 (不输出前导符 0x) x:小写字母输出;X:大写字母输出 |
u |
无符号十进制整数 |
c |
一个字符 |
s |
字符串 |
f |
小数形式(单、双精度,隐含6为小数) |
e,E |
指数形式 e:(1.2e+02) E: (1.2E+02) |
g,G |
%f 或 %e输出宽度较短的一种格式,不输出无意义的0 |
printf函数中的附加字符:
字符 |
说明 |
l |
长整形,可以加在d、o、x、u前 |
m(代表一个正整数) |
数据最小的宽度 |
n(代表一个正整数) |
对于实数,表示输出n位小数;对于字符串,表示截取的字符个数 |
- |
输出的数字或字符在域内靠左 |
scanf函数中用到的格式字符(用法与printf类似)
格式字符 |
说明 |
x,X |
输入无符号的十六进制(大小写作用相同) |
s |
输入时(以非空白符开始) 结束时(以标志\0 结束) |
f |
输入实数, 可以用小数 or 指数 输入 |
e、E、g、G |
与f单作用相同,e与f、g可以相互替换 |
scanf函数中用到的格式附加字符:
附加字符 |
说明 |
l |
输入长整形 (%ld, %lo, %lx, %lu) 以及 double类型(%lf or %le ) |
h |
输入短整形(%hd, %ho, %hx) |
域宽 |
制定输入数据的宽度(列数) 域宽(正整数) |
* |
输入项读入后,不赋给相应的变量 |
注意1:如果在格式控制字符串中除了格式声明以外还有其它字符,则在输入数据时,应该在对应单位置上输入相同单字符
1 2
| scanf("a=%d,b=%f,c=%f",&a,&b,&c);
|
注意2:在连续输入字符时,两个字符间不要插入空格和其它字符(除非在scanf函数中的格式字符串中有*普通字符*),让系统能够区分两个字符
字符输入输出函数:
1.putchar函数:
向显示器输出一个字符
虽然字符类型也属于整数类型,但是putchar函数输出的是字符形式,所以不能输出整数
要求其值需要在ACSII码的范围之内
2.getchar函数:
getchar函数没有参数,其作用是输入一个字符
getchar只能输入一个字符,如果要输入多个字符,就要多次调用
getchar 的注意事项,在键入一个字符后,不要马上按回车,这样会把回车也作为一个字符输入
if语句的注意事项:
if语句中 非0代表真
0代表假
例题:判断某一年是否为闰年
1 2 3
| if((year%4 == 0 && year%100 != 0) || year % 400 ) ==0)
|
switch语句注意事项:
各个case单标号出现次序不影响执行结果,例如:可以先出现default标号,再出现case ...
每个case常量必须互不相同,否则会出现互相矛盾
最后一个case可以不必要➕break语句
一旦进入一个case/default,只要没有break,就会一直执行下面的每一个case!!!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| int main() { int n = 'e'; switch (--n) { case 'd': printf("warn"); case 'a': case 'b': printf("good"); break; case 'c': printf("pass"); default: printf("error"); } }
|