亚洲喷奶水中文字幕电影,日本aⅴ高清一区二区三区,欧美亚洲日本国产,欧美日韩亚洲中文字幕

<legend id="flx4p"><abbr id="flx4p"><thead id="flx4p"></thead></abbr></legend>

<mark id="flx4p"><thead id="flx4p"></thead></mark>

      c++ 面試題匯總

        1,關(guān)于動(dòng)態(tài)申請(qǐng)內(nèi)存

        答:內(nèi)存分配方式三種:

        (1)從靜態(tài)存儲(chǔ)區(qū)域分配:內(nèi)存在程序編譯的時(shí)候就已經(jīng)分配好,這塊內(nèi)存在程序的整個(gè)運(yùn)行期間都存在。

        全局變量,static變量。

        (2)在棧上創(chuàng)建:在執(zhí)行函數(shù)時(shí),函數(shù)內(nèi)局部變量的存儲(chǔ)單元都可以在棧上創(chuàng)建,

        函數(shù)執(zhí)行結(jié)束時(shí)這些存儲(chǔ)單元自動(dòng)被釋放。

        棧內(nèi)存分配運(yùn)算內(nèi)置于處理器的指令集中,效率很高,但是分配的內(nèi)存容量有限。

        (3)用malloc或new申請(qǐng)內(nèi)存之后,應(yīng)該立即檢查指針值是否為NULL.防止使用指針值為NULL的內(nèi)存,

        不要忘記為數(shù)組和動(dòng)態(tài)內(nèi)存賦初值。防止將未被初始化的內(nèi)存作為右值使用。避免數(shù)組或指針的下標(biāo)越界,

        特別要當(dāng)心發(fā)生“多1”或者“少1”操作。動(dòng)態(tài)內(nèi)存的申請(qǐng)與釋放必須配對(duì),防止內(nèi)存泄漏。

        用free或delete釋放了內(nèi)存之后,立即將指針設(shè)置為NULL,防止產(chǎn)生“野指針”。從堆上分配,亦稱(chēng)動(dòng)態(tài)內(nèi)存分配。

        程序在運(yùn)行的時(shí)候用malloc或new申請(qǐng)任意多少的內(nèi)存,程序員自己負(fù)責(zé)在何時(shí)用free或delete釋放內(nèi)存。

        動(dòng)態(tài)內(nèi)存的生存期由程序員決定,使用非常靈活。(int *pArray; int MyArray[6]; pArray = &MyArray[0];)

        如果在申請(qǐng)動(dòng)態(tài)內(nèi)存時(shí)找不到足夠大的內(nèi)存塊,malloc和new將返回NULL指針,

        判斷指針是否為NULL,如果是則馬上用return語(yǔ)句終止本函數(shù),

        或者馬上用exit(1)終止整個(gè)程序的運(yùn)行,為new和malloc設(shè)置異常處理函數(shù)。

        2,C++指針攻破

        答案:指針是一個(gè)變量,專(zhuān)門(mén)存放內(nèi)存地址,特點(diǎn)是能訪(fǎng)問(wèn)所指向的內(nèi)存

        指針本身占據(jù)了4個(gè)字節(jié)的長(zhǎng)度

        int **ptr; //指針的類(lèi)型是 int **

        int (*ptr)[3]; //指針的類(lèi)型是 int(*)[3]

        int *(*ptr)[4]; //指針的類(lèi)型是 int *(*)[4]

        ptr++:指針ptr的值加上了sizeof(int)

        ptr+=5:將指針ptr的值加上5*sizeof(int)

        指針的賦值:

        把一個(gè)變量的地址賦予指向相同數(shù)據(jù)類(lèi)型的指針變量( int a; int *ip; ip=&a; )

        把一個(gè)指針變量的值賦予指向相同類(lèi)型變量的另一個(gè)指針變量(int a; int *pa=&a; int *pb; pb=pa; )

        把數(shù)組的首地址賦予指向數(shù)組的指針變量(int a[5],*pa; pa=a; 也可寫(xiě)為:pa=&a[0];)

        如果給指針加1或減1 ,實(shí)際上是加上或減去指針?biāo)赶虻臄?shù)據(jù)類(lèi)型大小。

        當(dāng)給指針加上一個(gè)整數(shù)值或減去一個(gè)整數(shù)值時(shí),表達(dá)式返回一個(gè)新地址。

        相同類(lèi)型的兩個(gè)指針可以相減,減后返回的整數(shù)代表兩個(gè)地址間該類(lèi)型的實(shí)例個(gè)數(shù)。

        int ** cc=new (int*)[10]; 聲明一個(gè)10個(gè)元素的數(shù)組,數(shù)組每個(gè)元素都是一個(gè)int *指針,

        每個(gè)元素還可以單獨(dú)申請(qǐng)空間,因?yàn)閏c的類(lèi)型是int*型的指針,所以你要在堆里申請(qǐng)的話(huà)就要用int *來(lái)申請(qǐng);

        int ** a= new int * [2];     //申請(qǐng)兩個(gè)int * 型的空間

        a[0] = new int[4];        ////為a的第一個(gè)元素申請(qǐng)了4個(gè)int 型空間,a[0] 指向了此空間的首地址處

        a[1] = new int[3];        //為a的第二個(gè)元素又申請(qǐng)了3個(gè)int 型空間,a[1]指向了此空間首地址處

        

      本文已影響6827
      上一篇:SQL數(shù)據(jù)庫(kù)面試題以及答案 下一篇:.net 面試題大全(有答案)

      相關(guān)文章推薦

      |||||