1.#include <file.h>和#include "file.h"有什么区别
#include <file.h>编译器直接从系统类库目录里查找头文件,如果类库目录下查找失败,编译器会终止查找,直接报错。一般用于包含系统头文件,诸如stdlib.h、stdio.h等;
#include "file.h"默认从项目当前目录查找头文件,如果在项目当前目录下查找失败,再从项目配置的头文件引用目录查找头文件,所谓项目配置的引用目录,就是我们在项目工程中设置的头文件引用目录。一般用于包含自定义头文件,比如我们自定义的xxx.h等。
2.请回答输出结果
#include "stdio.h"
#define A 5+5
void main()
{
printf("%d\n",A*2);
}
结果为 5+5*2=15
3.请回答输出结果
#include "stdio.h"
#define N 4+1
#define M N*2+N
#define RE 5*M+M*N
void main()
{
printf("%d\n",RE/2);
}
结果为 5*4+1*2+4+1+4+1*2+4+1*4+1/2=41.5,因为是%d,所以是int类型,最后结果为41.
一.数据类型
生活中存在整数、小数、字母、汉字等类型,所以计算机在存储这些数据是需要使用特殊的数据类型进行保存,作用统一操作,节约空间,访问速度快。
1.1 数据类型分类
1> 基本类型/原子类型:不可以分割(int ,float,char ,double short)
2> 构造类型:可以分割(数组,结构体,共用体)
3> 指针类型
4> 空类型void
1.2 数据类型
i)整型int \short\long
数据类型 | 格式说明 | 大小 | 范围 |
int | %d | 4字节 | -2^31 ---+2^31-1 |
unsigned int | %u | 4字节 | 0----2^32-1 |
short 短整形 | %d | 2字节 | -2^15 ---+2^15-1 |
unsigned short | %u | 2字节 | 0--2^16-1 |
long 长整形 | %ld | 8字节 | -2^63----+2^63-1 |
unsigned long | %lu | 8字节 | 0-----2^64-1 |
ii)小数\浮点型\实型float\double
float 单精度浮点型 | 默认有6位小数 | 4字节 | 有效位7位 | %f |
double双精度浮点型 | 默认有6位小数 | 8字节 | 有效位16位 | %lf |
iii)单字符类型char
注意:单字符需要使用单引号括起来
'a' 'b' '\n'
char 默认是有符号 | %c:是字符 %d:是整数 | 1字节 | -128----+127 |
unsigned char | %u %d | 1字节 | 0---255 |
ps:当存储的数值超越了数据类型的取值范围是会循环到最值 依次向后
1.3 定义变量
1> 存储类型 【考点】
1.auto: 自动类型,一般默认不写就是自动类型
2.static: 静态变量
3.const: 修改的变量值不可以更改
4.extern: 外部变量
5.register: 寄存储器变量,寄存器> cache >内存
6.volatile: 防止内存优化