乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      C++筆試面試準備(整理)

       行者花雕 2021-04-24

      1、C++中指針與引用的區(qū)別

      1)指針是一個新的變量,存儲了另一個變量的地址,我們可以通過訪問這個地址來修改另一個變量;

      引用只是一個別名,還是變量本身,對引用的任何操作就是對變量本身進行操作,以達到修改變量的目的

      2)引用只有一級,而指針可以有多級

      3)指針傳參的時候,還是值傳遞,指針本身的值不可以修改,需要通過解引用才能對指向的對象進行操作。

      引用傳參的時候,傳進來的就是變量本身,因此變量可以被修改。

      2、結構體(struct):

      將不同類型的數(shù)據(jù)組合成一個整體,sizeof(struct)是內存對齊后所有成員長度的總和。

      3、內存對齊:(轉自:http://www./article/2021/01/2100/0011500966600.html)

       intshortlongcharcahr*floatdouble
      32位4241448
      64位4281848

      例1:(假設指定對齊字節(jié)為8,那么n = min(8,4) = 4)

      class node{    int i; //放在位置0,位置區(qū)間[0~3]    char c; //1 < n, 那么放置起始位置應該是1的倍數(shù),即4,位置區(qū)間為[4]    short s; //2 < n,那么放置起始位置應該是2的倍數(shù),即6,位置區(qū)間為[6~7]}

      成員共占據(jù)[0~7]8個字節(jié),剛好是4的倍數(shù),因此大小是8

      例2(假設指定對齊字節(jié)是2,則n = min(2,4) = 2) 

      class node{    char c; //放在位置0,位置區(qū)間[0]    int i; //4 > n, 那么放置起始位置應該是2的倍數(shù),即2,位置區(qū)間為[2~5]    short s; //2 = n,那么放置起始位置應該是2的倍數(shù),即6,位置區(qū)間為[6~7]}

      此時成員共占用[0~7]8個字節(jié),剛好是4的倍數(shù),因此大小是8

      4、#define和const的區(qū)別

      1)#define定義的常量沒有類型,所給出的是一個立即數(shù);const定義的常量有類型名字,存放在靜態(tài)區(qū)域

      2)處理階段不同,#define定義的宏變量在預處理時進行替換,可能有多個拷貝,const所定義的變量在編譯時確定其值,只有一個拷貝。

      3)#define定義的常量是不可以用指針去指向,const定義的常量可以用指針去指向該常量的地址

      4)#define可以定義簡單的函數(shù),const不可以定義函數(shù)

      5、重載:同一類中,函數(shù)名相同,參數(shù)和返回值不同(相同范圍(同一個類中)、函數(shù)名字相同、參數(shù)不同、virtual關鍵字可有可無)

      覆蓋:派生類覆蓋基類的虛函數(shù),實現(xiàn)接口的重用(不同范圍(基類和派生類)、函數(shù)名字相同、參數(shù)相同、基類中必須有virtual關鍵字(必須是虛函數(shù)))

      重寫:派生類屏蔽了其同名的基類函數(shù)(不同范圍(基類和派生類)、函數(shù)名字相同、參數(shù)不同或者參數(shù)相同且無virtual關鍵字)

      6、new、delete、malloc、free之間的關系

      new/delete,malloc/free都是動態(tài)分配內存的方式

      1)malloc對開辟的空間大小嚴格指定,而new只需要對象名

      2)new為對象分配空間時,調用對象的構造函數(shù),delete調用對象的析構函數(shù)

      既然有了malloc/free,C++中為什么還需要new/delete呢?

      因為malloc/free是庫函數(shù)而不是運算符,不能把執(zhí)行構造函數(shù)和析構函數(shù)的功能強加于malloc/free.

      7.STL庫:(轉載:https://blog.csdn.net/qq_41431457/article/details/88898925)

      STL(Standard Template Library),即標準模板庫,是一個具有工業(yè)強度的,高效的C++程序庫。

      vector:是支持隨機訪問的迭代器

       

       

       

       

       

       

       

       

       vector的動態(tài)增加大小的時候,并不是在原有的空間上持續(xù)新的空間(無法保證原空間的后面還有可供配置的空間),而是以原大小的兩倍另外配置一塊較大的空間,然后將原內容拷貝過來,并釋放原空間。在VS下是1.5倍擴容,在GCC下是2倍擴容。

      #include<iostream>#include<vector>using namespace std;//iterator模式:提供一種方法,使之能依次訪問容器內的各個元素,而又不暴露該聚合物內部的表述方式。 void print(vector<int>&v){for(vector<int>::iterator i=v.begin();i!=v.end();i++){
              cout<<*i<<" ";
          }
          cout<<endl;
      }//四種定義方法 void test01()
      {
          vector<int>v1;for(int i=0;i<10;i++){
              v1.push_back(i);
          }
          print(v1);
          
          vector<int>v2(v1.begin(),v1.end());
          print(v2);
          
          vector<int>v3(10,100);
          print(v3);
          
          vector<int>v4(v3);
          print(v4);    //賦值 opertor= vector<int>v5;
          v5=v1;
          print(v5);    //assign賦值vector <int>v6;
          v6.assign(v1.begin(),v1.end());
          print(v6);
          
          vector <int>v7;
          v7.assign(10,1);//10個1    print(v7); 
          //插入,第一個參數(shù)是迭代器v7.insert(v7.begin(),1000) ;
          print(v7);
          
          v7.insert(v7.begin(),3,11111000) ;
          print(v7);
          
           
      }int main()
      {
          test01();    return 0;
      }

      8、const

      const修飾類的成員變量,表示常量不可能被修改

      const修飾類的成員函數(shù),表示該函數(shù)不會修改類中的數(shù)據(jù)成員,不會調用其他非const的成員函數(shù)

      static:

      12、關鍵字static的作用

      1)函數(shù)體內: static 修飾的局部變量作用范圍為該函數(shù)體,不同于auto變量,其內存只被分配一次,因此其值在下次調用的時候維持了上次的值

      2)模塊內:static修飾全局變量或全局函數(shù),可以被模塊內的所有函數(shù)訪問,但是不能被模塊外的其他函數(shù)訪問,使用范圍限制在聲明它的模塊內

      3)類中:修飾成員變量,表示該變量屬于整個類所有,對類的所有對象只有一份拷貝

      4)類中:修飾成員函數(shù),表示該函數(shù)屬于整個類所有,不接受this指針,只能訪問類中的static成員變量

      9.堆和棧的區(qū)別

      堆heap低址-高址內存手動釋放效率低函數(shù)的參數(shù)值、局部變量
      棧stack 高-低自動效率高new

      10、C++中的內存管理

      在C++中,內存被分成五個區(qū):棧、堆、代碼區(qū)、全局/靜態(tài)存儲區(qū)、常量區(qū)

      代碼區(qū):

      棧:存放函數(shù)的參數(shù)和局部變量,編譯器自動分配和釋放

      堆:new關鍵字動態(tài)分配的內存,由程序員手動進行釋放,否則程序結束后,由操作系統(tǒng)自動進行回收

      全局/靜態(tài)存儲區(qū):存放全局變量和靜態(tài)變量

      常量區(qū):存放常量,不允許被修改

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多