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.浮点数的比较(修正误差)
更新中…