GEEK學習筆記 程式猿面試寶典筆記(二)

2021-09-07 13:44:01 字數 2198 閱讀 5970

所謂筆記,就是比較個人的東西,把個人認為有點意思的東西記錄下來~~

程式猿面試寶典筆記(一)基本概念

程式猿面試寶典筆記(二)預處理、const和sizeof

程式猿面試寶典筆記(三)auto_ptr、遞迴

程式猿面試寶典筆記(四)物件導向、型別轉換、static

程式猿面試寶典筆記(五)資料結構基礎

程式猿面試寶典筆記(六)軟體測試

寫乙個「標準」巨集min。這個巨集輸入兩個引數並返回較小的乙個。

為什麼要把如此簡單的題目也放進來呢?為了強調巨集定義裡面括號的重要性!

#define min(a,b) ((a) <= (b) ? (a) : (b))
const與指標的關係?const成員函式?以及mutable!

一般分為4種情況:

int b = 500;

const

int* a = &b;

intconst* a = &b;

int* const a = &b;

const

int* const a = &b;

1)先看情況1。假設const位於星號的左側,則const就是用來修飾指標所指向的變數,即指標指向為常量。假設const位於星號的右側。const就是修飾指標本身。即指標本身是常量。

因此,1和2的情況同樣,都是指標所指向的內容為常量(const放在變數宣告符的位置無關),這樣的情況下不同意對內容進行更改操作。

對於情況1。能夠先不進行初始化。

由於儘管指標內容是常量。但指標本身不是常量。

2)情況2與情況1同樣。

3)情況3為指標本身是常量。這樣的情況下不能對指標本身進行更改操作,而指標所指向的內容不是常量。

對於情況3,定義時必須同一時候初始化。

4)對於情況4為指標本身和指向的內容均為常量。

以下再說一下const成員函式是什麼?

我們定義的類的成員函式中。經常有一些成員函式不改變類的資料成員,也就是說。這些函式是「僅僅讀」函式。而有一些函式要改動類資料成員的值。

假設把不改變資料成員的函式都加上const關鍵字進行標識。顯然。可提高程式的可讀性。事實上,它還能提高程式的可靠性,已定義成const的成員函式,一旦企圖改動資料成員的值,則編譯器按錯誤處理。

在const成員函式中。用mutable修飾成員變數名後,就能夠突破const的限制,改動類的成員變數了。

const與#define相比有什麼不同?

c++語言能夠用const定義常量,也能夠用#define定義常量,可是前者比後者有很多其它的長處:

● const常量有資料型別。而巨集常量沒有資料型別。編譯器能夠對前者進行型別安全檢查,而對後者僅僅進行字元替換,沒有型別安全檢查。而且在字元替換中可能會產生意料不到的錯誤(邊際效應)。

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

在c++程式中僅僅使用const常量而不使用巨集常量,即const常量全然代替巨集常量。

以下兩段程式分別輸出什麼?

**一

#include 

using

namespace

std;

class a

;class b

;int main()

**二

#include 

using

namespace

std;

#pragma pack(1)

class a

;class b

;int main()

非常明顯,這道題是考察結構的對齊。

一般來說。為了方便對結構體內元素的訪問和管理。結構體的長度一定是最長的資料元素的整數倍。

**一類a的對齊為

|bool|—-|—-|—-|

|——–int———|

|bool|—-|—-|—-|

**一類b的對齊為

|——–int———|

|bool|bool|—-|—-|

而**二用pack預處理指令來禁止對齊調整。所以就是本身的記憶體大小。

可是須要注意sizeof是計算棧中分配的記憶體大小,靜態變數是存放在全域性資料區。不會被計算在內。

**一:類a 12位元組;類b 8位元組

**二:類a 5位元組;類b 6位元組

GEEK學習筆記 程式設計師面試寶典筆記(三)

auto ptr的用法 auto ptr是安全指標。void f 最初動機是,如果上面 f 從沒有執行delete語句 因為過早的return或者是在函式體內部丟擲了異常 動態分配的物件將沒有被delete,這是乙個典型的記憶體洩漏。使其安全的乙個簡單方法是用乙個 靈 巧 的類指標物件包容這個指標,...

Java程式設計師面試寶典筆記

第六章1.變數必須先初始化後才能使用。2.byte short 和char 型別的運算操作首先會把這些值轉換為int 型別,然後對int 型別進行運算,最後得到int 型別的結果。3.靜態方法裡只能呼叫靜態方法 包括main 方法 4.main 方法必須加public 修飾,如果不加則預設為prot...

程式猿面試總結

良好的開端是成功的一半所以面試時第一印象很重,盡量在技術面試之前就抓住hr小姐姐和面試官的眼球,以下我總結了幾點 1 著裝簡單大方 乾淨整潔 不要油頭髮亮的。2 談吐目視對方,一方面表示尊重,其次這也是自信的表現。有些人可能不習慣一直看著對方眼睛也能理解,教你一種方法,看著對方的額頭就好也不要傻乎乎...