面试各种小坑肯(持续更新)

mac2022-06-30  105

各种小坑

1.小数的equal

计算机表示小数的时候,包括float和double型,都有误差。所以不能使用==来判断他们是否相等。只能判断他们是否在一个很小的误差之中,例如误差在正负0.00000001中就默认为相等。

2.位移运算符

a>>1表示将a的二进制数向右移动一位,现实意义为除以2.而且位运算等运算速度远比除运算要快的多。eg:2>>1 = 1 ( 10右移一位为 1)

3.动态开辟数组

在数组大小不确定时,经常使用动态开辟方式。例如开辟一个int的动态数组。

int *p = new int[n];

同时注意的点是,动态开辟后需要delete数组。

delete[] p;

而在问题中,有很多时候需要开辟一个二维数组。而二维数组则不能直接写成下面这样:

int size=50,Column=50; int (*p)[Column]=new int [size][Column]

这种写法是错误的。编译器不会通过,可以看出这种动态开辟本质上只有对一维数组是真正动态开辟的。动态开辟二维数组如下:

//动态开辟空间 int **p = new int*[m]; //开辟行 for(int i = 0; i < m; i++) p[i] = new int[n]; //开辟列 //释放开辟的资源 for(i = 0; i < m; i++) delete[] p[i]; delete[] p;

 

4.鲁棒性

鲁棒性即为健壮性,指程序能够判断输入是否合乎规范要求,并对不合理输入给予合理的处理。注视代码的鲁棒的性,需要在代码函数的入口处添加验证传入参数的合理性。

转载于:https://www.cnblogs.com/Mask-D/p/10471376.html

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)