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

本文介绍了C++编程中的基本数据类型及其取值范围、宏定义的使用注意事项、数组初始化方法、指针与引用的区别及应用、结构体的简化构造等实用知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.浮点数的比较(修正误差)
在这里插入图片描述
更新中…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值