c++面試(一)

來源:互聯網
上載者:User

標籤:

1.在c++中可以通過"::"來直接操作全域變數。

2.i++與++i效率的比較。

(1)內建資料類型時,他們的效率差別不大。

(2)自訂資料類型(類等)的情況,(++i)可以返回對象的引用,而(i++)必須返回對象的值,所以導致在大對象的時候產生了較大的複製開銷,效率低。

3.假設浮點變數的名字為x,它與0.0比較:

if((x<=-EPSINON)&&(x<=EPSINON))

if((x<-EPSINON)||(x>EPSINON))

4.註:當運算式中存在無符號類型時,所有的運算元都自動轉換成無符。

char getChar(int x,int y)

{

  char c;

  unsigned int a=x;

  (a+y)>10?(c=1):(c=2);

  return c;

}

(1)(7,-7):-7轉化成一個很大的數,與7相加正好溢出,其值為0。

(2)(7,-8):-8轉化成一個很大的數,與7相加差1就溢出了,返回1。

5.兩數交換,推薦使用按位異或的方式。

void swap(int &a,int &b)    //採用引用傳參的方式

{

  a^=b;

  b^=a;

  a^=b;

}

6.atexit()函數,在mian()函數執行完後被執行。

標頭檔:#include <stdlib.h>

atexit()被調用的順序與他們在main()中註冊的順序相反。

7.sizeof()  //結構體、類等,大小需要對齊。

(1)普通函數不佔記憶體,只用虛函數佔用一個指標大小的記憶體。  //virtual void print() {}

(2)空類:class A{},編譯器會安排一個指標大小的記憶體。

(3)#pragma pack()  //強行改變對其大小

#include <iostream.h>

#pragma pack(2)

struct test{

  char c;

  short s1;

  short s2;

  int i;

}

int main()

{

  cout << sizeof(test)<<endl;

  return 0;

}

=>10

8.inline 內嵌函式的適用場合:用來定義存取函數(set/get函數等)。

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.