c++面試(二)

來源:互聯網
上載者:User

標籤:

1.宏參數的串連

#define CONS(a,b) (int)(a##e##b)

CONS(2,3) =>2e3 =2000

2.const

int b=10;

int c=20;

const int *a1=&b;    //指標指向常量,修改指標可以a1=&c(對),但是修改指向的內容不行*a1=1(錯)。

int* const a2=&b;    //指標本身為常量。a2=&c(錯),*a2=1(對)。

const int* const a3=&b;    //雙const:指標本身不能改,只想內容不能改。

3.#define:    Compile-Time    止於編譯期

     const:     Run-Time          在堆棧只分配了空間

4.const的作用

(1)定義常量。

(2)修飾函數形參。

形參為使用者自訂或抽象資料類型時,應該把“值傳遞”改為“const &傳遞”,提高效率。

void fun(A a)

void fun(A const &a)    //不需要產生臨時對象,節省了構造、複製、析構過程的時間。但光引用可能會改變a,所以加上const。

(3)const修飾函數的傳回值:

如給“指標傳遞”的函數傳回值+const,傳回值不能被直接修改,且只能賦給+const修飾的同類型指標。

(4)const修飾類的成員函數(定義體)

int GetCount(void) const;

任何不會修改資料成員的函數都應+const。

5.static有什麼作用

(1)函數體內,靜態變數調用過程其值不變。

(2)在模組內(函數體外),靜態變數可以被模組內所有函數訪問,但不能被模組外其他函數訪問。    它是一個本地的全域變數。

(3)在模組內,一個被聲明為靜態函數值可被這一模組內的其他函數調用。

 

c++面試(二)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.