C 面試題彙總

2021-09-25 18:36:53 字數 776 閱讀 3037

c++面試題彙總

1.在什麼時候需要使用「常引用」?

如果既要利用引用提高程式的效率,又要保護傳遞給函式的資料不在函式中被改變,就應使用常引用。常引用宣告方式:const 型別識別符號 &引用名=目標變數名;

例1int a ;

const int &ra=a;

ra=1; //錯誤

a=1; //正確

例2string foo( );

void bar(string & s);

那麼下面的表示式將是非法的:

bar(foo( ));

bar(「hello world」);

原因在於foo( )和"hello world"串都會產生乙個臨時物件,而在c++中,這些臨時物件都是const型別的。因此上面的表示式就是試圖將乙個const型別的物件轉換為非const型別,這是非法的。引用型引數應該在能被定義為const的情況下,盡量定義為const

2.請說出const與#define 相比,有何優點?

const作用:定義常量、修飾函式引數、修飾函式返回值三個作用。被const修飾的東西都受到強制保護,可以預防意外的變動,能提高程式的健壯性。

1) const 常量有資料型別,而巨集常量沒有資料型別。編譯器可以對前者進行型別安全檢查。而對後者只進行字元替換,沒有型別安全檢查,並且在字元替換可能會產生意料不到的錯誤。

2) 有些整合化的除錯工具可以對const 常量進行除錯,但是不能對巨集常量進行除錯。

面試題彙總

1.佇列先進先出,棧先進後出。2.對插入和刪除操作的 限定 棧是限定只能在表的一端進行插入和刪除操作的線性表。佇列是限定只能在表的一端進行插入和在另一端進行刪除操作的線性表。從 資料結構 的角度看,它們都是線性結構,即資料元素之間的關係相同。3.遍歷資料速度不同。順序表是在記憶體中開闢一段連續的空間...

面試題彙總

1 integer和int的區別?2 和equals的區別?int a 50,integer b 50 a b?integer c 50,b c?3 get和post的區別?4 用執行緒池建立執行緒和自己建立執行緒的區別,好處是什麼?5 利用int型陣列實現乙個棧,並實現出棧和入棧操作?要求時間複雜...

面試題彙總

題目都是我自己寫的,所以也不一定是完全正確的,因為能有很多細節沒有考慮,如果大家發現了希望指正 1 完美世界2017 刪除vector中所有偶數 最想去的地方呀。void deleteeven vector v2 else if iter 2 0 else 2 編寫類string的建構函式,析構函式...