1. 数据类型
整型int、浮点型float、字符型char;数组[ ]、结构体struct;指针*;空类型void
2. 常量
- 整型
a. 符号常量define是直接替换的效果
#define PI 3.14 //把PI直接换为3.14
预编译指令只是对值进行简单替换,不能进行类型检查
b. 关键字const定义只读变量(常变量)
const int a=10; //等价于int const a=10;
可以保护被修饰的东西,防止意外修改,且编译器将const常量保存在符号表中,没有存储和读内存的操作,效率很高
- 浮点型
e(或E)代表10的幂次,e前必须有数字,e后指数必须为整数。
eg. 3e-3 = 0.003 正确表示:1.8e-3 -.1e-3
- 字符型
单引号括起来,且只能包含一个字符,如'a', ' ', '1'。存储的是ASCII码值。
转义字符:\n换行
- 字符串型
双引号括起来的字符序列,如"a", "1.23", 以'\0'作为字符串结束标志,存储但不输出'\0'。
3. 变量
命名规则:数字、字母和下划线,首字符为字母或下划线
变量名不能与关键字同名
4. ASCII表
5. printf函数
强制类型转换
int i=5;
float j=i/2; //j=2
float k=(float)i/2; //k=2.5
具体代码格式
%c %d %f %s %x %X %p %u等
更多用法:%5.2f 默认右对齐 %-5.2f左对齐 %10s
6. 整型常量的不同进制表示
存储二进制,常用十进制,其次十六进制(数字前加0x)、八进制(数字前面加0)
十六进制常用于观察内存,小端存储,低位在前,高位在后,如0x0000007b显示为7b 00 00 00
进制转换:做除法,逆序写出余数。
7. scanf函数
scanf %d %f 发现里边有\n 空格,忽略(先删除这些字符,再匹配)
scanf %c 不忽略内容(可读取'\n', ' ')
fflush(stdin); //清空标准输入缓冲区
scanf("%d",&i);
fflush(stdin);
scanf("%c",&c);
printf("%c",c);
20 6
5
5
进程已结束,退出代码为 0
scanf有返回值,表示匹配成功了几个成员
ret=scanf("%d %c%f",&i,&c,&f); //要在%c前加一个空格
printf("%d\n",ret);
printf("%d %c %5.2f\n",i,c,f);
10 a 82.7
3
10 a 82.70
进程已结束,退出代码为 0