日韩欧美另类久久久精品_亚洲大色堂人在线无码_国产三级aⅴ在线播放_在线无码aⅴ精品动漫_国产精品精品国产专区

經(jīng)典c++面試題庫

  1. C++的類和C里面的struct有什么區(qū)別?

  struct成員默認訪問權(quán)限為public,而class成員默認訪問權(quán)限為private

  2. 析構(gòu)函數(shù)和虛函數(shù)的用法和作用

  析構(gòu)函數(shù)是在對象生存期結(jié)束時自動調(diào)用的函數(shù),用來釋放在構(gòu)造函數(shù)分配的內(nèi)存。

  虛函數(shù)是指被關(guān)鍵字virtual說明的函數(shù),作用是使用C++語言的多態(tài)特性

  3. 全局變量和局部變量有什么區(qū)別?是怎么實現(xiàn)的?操作系統(tǒng)和編譯器是怎么知道的?

  1) 全局變量的作用用這個程序塊,而局部變量作用于當前函數(shù)

  2) 前者在內(nèi)存中分配在全局數(shù)據(jù)區(qū),后者分配在棧區(qū)

  3) 生命周期不同:全局變量隨主程序創(chuàng)建和創(chuàng)建,隨主程序銷毀而銷毀,局部變量在局部函數(shù)內(nèi)部,甚至局部循環(huán)體等內(nèi)部存在,退出就不存在

  4) 使用方式不同:通過聲明后全局變量程序的各個部分都可以用到,局部變量只能在局部使用

  4. 有N個大小不等的自然數(shù)(1–N),請將它們由小到大排序.要求程序算法:時間復雜度為O(n),空間復雜度為O(1)。

  void sort(int e[], int n)

  {

  int i;

  int t;

  for (i=1; i {

  t = e[e[i]];

  e[e[i]] = e[i];

  e[i] = t;

  }

  }

  5. 堆與棧的去區(qū)別

  A. 申請方式不同

  Stack由系統(tǒng)自動分配,而heap需要程序員自己申請,并指明大小。

  B. 申請后系統(tǒng)的響應不同

  Stack:只要棧的剩余空間大于申請空間,系統(tǒng)就為程序提供內(nèi)存,否則將拋出棧溢出異常

  Heap:當系統(tǒng)收到程序申請時,先遍歷操作系統(tǒng)中記錄空閑內(nèi)存地址的鏈表,尋找第一個大于所申請空間的堆結(jié)點,然后將該結(jié)點從空間結(jié)點鏈表中刪 除,并將該結(jié)點的空間分配給程序。另外,大多數(shù)系統(tǒng)還會在這塊內(nèi)存空間中的首地址處記錄本次分配的大小,以便于delete語句正確釋放空間。而且,由于 找到的堆結(jié)點的大小不一定正好等于申請的大小,系統(tǒng)會自動將多余的那部分重新放入空閑鏈表。

  

本文已影響6827
上一篇:Java軟件工程師綜合面試筆試題 下一篇:.NET概念性的面試題目

相關(guān)文章推薦

|||||