数据类型
- 整型int=long int
- 长整形long long=long long int
- 绝对值在 1 0 9 10^9 109范围以内的整数都可以定义成int型,如果题目要求整数取值范围超过2147483647(如 1 0 10 10^{10} 1010)就要用long long来存
- 如果long long型( 1 0 18 10^{18} 1018以内)赋大于 2 31 2^{31} 231的初值,则需要在初值后面加上LL,否则会出现编译错误
- 碰到浮点型的数据应该使用double来存储
- 由于int型的上限为 2 31 − 1 2^{31}-1 231−1,因此有时程序中无穷大的数INF可以设置成(1<<31)-1,但一般更常用的是 2 30 − 1 2^{30}-1 230−1,这两个其实是等价的,二进制形式为0x3fffffff,它可以避免相加超过int的情况
宏定义
是直接将对应部分替换,然后才进行编译和运行,他会将替换的部分直接原封不动的替换进去
位运算符表
输入输出
- 如果要给多个变量赋同一个值,可以使用连续等号的方法n=m=5;
- scanf的%c格式是可以读入空格跟换行的,getchar可以读入ENTER
- double类型在scanf中是%lf,在printf中是%f
- printf在输出%和\时要打两个才可以
char *s = "this is test example";
printf("%.*s\n", 10, s);//这里的常量10就是给*号的,你也可以用一个变量来控制宽度
//this is te
printf("%*.*s\n", 20, 10, s);//常量20控制输出所占位宽,也可以用一个变量控制
//----------this is te
- %md可以使不足m位的int型变量以m为进行右对齐输出,其中高位用空格补齐,如果本身超过m位则保持原样。
- %0md当变量不足m位时将在前面补足足够数量的0
- %.mf可以让浮点数保留m位输出,但这个不是四舍五入
- 四舍五入使用math.h中的round函数(这个只能到整数)
- gets用来输入一行字符串,识别一个\n作为输入结束,需要使用getchar接收,puts输出紧跟一个换行
- π = a r c c o s ( − 1 ) \mathrm\pi=arccos(-1) π=arccos(−1),代码是acos(-1.0)
typedef long long LL;//起别名(复杂的结构)
数组
- 如果定义的数组大小较大(大概 1 0 6 10^6 106级别),则需要将其定义在主函数外面,否则会使程序异常退出,原因是函数内部申请的局部变量来自系统栈,允许申请的空间较小,而函数外部申请的全局变量来自静态存储区,允许申请的空间较大
- memset头文件是string.h,格式memset(数组名,值,sizeof(数组名))
REF
https://blog.csdn.net/frothmoon/article/details/90318948