记录算法笔记中以前忽略的一些知识点

1.int占用32bit(4Byte) 取值范围为-2^31 ~ +(2^31-1) 可以表示10^9以内的整数
long long占用64bit(8Byte) 取值范围为-2^63 ~ +(2^63-1) 可以表示10^18以内的整数

2.float有效精度6-7位,double有效精度15-16位,浮点型数据都应该用double存储

3.ASCII码:0-9,A-Z,a-z的ASCII码分别是48-57,65-90,97-122,小写字母的ASCII码值比大写字母大32

4.宏定义:直接将对应的部分替换
例:#define pi 3.14 #define MAX(a,b) ((a)>(b)?(a):(b))
不加括号会出现问题,如:#define CAL(x) (x*2+1)
执行CAL(a+1)会变成(a+1*2+1)而非预想的((a+1)*2+1)

5.定义INF一般设为2^30-1,避免相加超过int

const int INF=(1<<30)-1;
const int INF=0x3fffffff;

6.对于double类型的变量,输出格式为**%f**,输入格式为**%lf**

7.typedef long long LL; 给数据类型起别名

8.常用math函数:fabs(绝对值)、floor/ceil/round(向下取整/向上取整/四舍五入)、pow、sqrt、log(e为底,换底公式可求loga(b)=loge(b)/loge(a))、sin/cos/tan/asin/acos/atan

9.给整个数组赋值为0:int a[10]={0};int a[10]={};

10.函数内部申请的局部变量来自,允许空间较小,所以数组大到约10^6级别则需要定义在主函数外

11.常用string函数:strlen、strcmp、strcpy、strcat(把字符串2接到字符串1后面)

12.sscanf、sprintf用于格式化处理字符串,
sscanf(str,"%d",&n); sprintf(str,"%d",n);

13.指针是一个unsigned类型的整数

void swap(int* a,int* b){
	int temp=*a;
	*a=*b;
	*b=temp;
}

14.使用引用实现上述函数功能:

void swap(int* &a,int* &b){
	int* temp=a;
	a=b;
	b=temp;
}

15.结构体构造函数简化:

//结构体studentInfo有成员id和gender
studentInfo(int _id,int _gender):id(_id),gender(_gender) {}

16.浮点数的比较(修正误差)
在这里插入图片描述
更新中…

猜你喜欢

转载自blog.csdn.net/weixin_43835911/article/details/89017206