二十 乙個面試題

2021-07-04 21:50:24 字數 956 閱讀 6595

面試題:

寫函式判斷乙個變數是否為指標?

tip:

如果同時存在普通函式和其過載版本、模板函式、可變引數函式,編譯器會優先呼叫普通函式和其過載版本,然後依次時模板函式和可變引數函式!

示例:

#include 

#include

using

namespace

std;

void test(int i, int j)

執行結果:

知道了上述知識點,就可以解決面試題了!

利用函式模板與可變引數函式的匹配優先順序,判斷乙個變數是否是指標:

#include 

#include

using

namespace

std;

template

void isptr(t* i)

tip:

如果是指標型別,編譯器就會優先匹配模板函式,如果匹配不上,才匹配可變引數函式!

這種方法雖然解決了問題,但是效率卻不高,再做一些改進!

#include 

#include

using

namespace

std;

#define isptr(v) (sizeof(isptr(v)) == sizeof(int))

template

int isptr(t* i);

char isptr(...);

int main(int argc, char *argv)

tip:

上述**,本質上還是利用函式匹配優先順序,但是我們增加了sizeof運算子,該運算子是在編譯器就處理的,所以在編譯器結果就被計算好了。通過函式返回值的大小差異,來判斷編譯器呼叫了哪個函式,從而判斷是否是指標!

面試題(十一)

11.iphone os有沒有垃圾 gc 沒有。iphone開發的時候沒有垃圾 機制。13.什麼時候用delegate,什麼時候用notification?答 delegate針對one to one關係,並且reciever可以返回值 給sender,notification 可以針對one to...

linux C經典面試題十一

1.有以下表示式 int a 248 b 4 int const c 21 const int d a int const e b int const f const a 請問下列表示式哪些會被編譯器禁止?為什麼?c 32 d b d 43 e 34 e a f 0x 321f c 這是個什麼東東,...

hadoop面試題整理 十一

1.hbase怎麼預分割槽?2.hbase怎麼給web前台提供介面來訪問?3.htable api有沒有執行緒安全問題,在程式中是單例還是多例?4.hbase有沒有併發問題?5.metaq訊息佇列,zookeeper集群,storm集群,就可以完成對 推薦系統功能嗎?還有沒有其他的中介軟體?6.st...