一、数学库常用函数 #include <cmath> 小数转整数相关 round() 四舍五入 5.1->5 5.4->5 5.5->6 double d=5.4; int a=round(d);//5 ceil() 向上取整 double d=5.4; int a=ceil(d);//6 floor() 向下取整 double d=5.9; int a=floor(d);//5 trunc() 向零取整 double d=5.9; int a=floor(d);//5 double d=-5.9; int a=floor(d);//-5 abs() 求绝对值:到0的距离 int a=-5; abs(a);//5 sqrt() 平方根,开平方,相当于平方逆运算 int a=25; sqrt(a);//5 5*5=25 int a=64; sqrt(a);//8 8*8=64 cbrt() 立方根,开立方,相当于立方逆运算 int a=27; cbrt(a);//3 3*3*3=27 int a=64; cbrt(a);//4 4*4*4=64 pow() 求幂函数 int a=3,b=4; pow(a,b);//相当于a的b次方,3*3*3*3=81 二、结构体与联合体 struct 结构体:多种数据类型结合成的整体 union 联合体:多种数据类型公用一块空间 union student{ string name; int age; int rank; }; 相当于多个人穿一条裤子 谁存数据,空间就放谁 student a; a.name="李强"; cout<<a.name;//李强 a.age=8; cout<<a.name;//乱码 原数据的部分空间用来存放8 cout<<a.age;//8 联合体到底占用多大空间?哪个变量占的空间最大,就是联合体整体的空间大小。 struct node{ int x,y; double k; }; node a;//占用空间大小:4字节+4字节+8字节=16字节 union node{ int x,y; double k; }; node a;//占用空间大小:max(4字节,4字节,8字节)=8字节 三、指针 指针也是一种变量,用来存放地址(不是存放具体值的) int a=5;//在内存中,5会存放在一个空间中,这个空间名为a,假设空间地址是0x666 int *p=&a; * 创建指针变量的标记 & 引用地址,取地址符 cout<<a;//5 cout<<&a;//0x666 cout<<p;//0x666 通过地址获取里面的值,用* cout<<*p;//5 *用法与数组的[]很像 int a[8];//创建时[8]代表长度 cout<<a[4];//使用时[4]代表下标 创建与使用时,同样的符号,不同的功能 用来存放数据地址的指针,类型需要与数据一致 int a=5; int *p=&a; double b=1.5; double *q=&b; char c='k'; char *o=&c; bool b=true; int *e=&b;//类型不一致,报错 (责任编辑:admin) |