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

各类小坑

1.小数的equal

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

2.位移运算符

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

3.动态开辟数组

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

int *p = new int[n];

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

delete[] p;

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

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.鲁棒性

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

相关文章
相关标签/搜索