面試各類小坑肯(持續更新)

各類小坑

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

魯棒性即爲健壯性,指程序可以判斷輸入是否合乎規範要求,並對不合理輸入給予合理的處理。
注視代碼的魯棒的性,須要在代碼函數的入口處添加驗證傳入參數的合理性。編譯器

相關文章
相關標籤/搜索