C 幾道簡單筆試題概念

2021-09-10 06:52:59 字數 747 閱讀 3670

值型別和引用型別:

值型別引用型別

儲存方式

直接儲存資料本身

儲存的是資料的引用,資料儲存在資料堆中

記憶體分配

分配在棧中的

分配在堆中

效率效率高,不需要位址轉換

效率較低,需要進行位址轉換

記憶體**

使用完後立即**

使用完後不立即**,而是交給gc處理**

賦值操作

建立乙個新物件

建立乙個引用

型別擴充套件

不易擴充套件,所有值型別都是密封(seal)的,所以無法派生出新的值型別

具有多型的特性方便擴充套件

例項分配

總是在程序堆中分配(動態分配)

值型別的變數賦值只是進行資料複製,建立乙個同值的新物件,而引用型別變數賦值,僅僅是把物件的引用的指標賦值給變數,使它們共用乙個記憶體位址。
值型別資料是在棧上分配記憶體空間,它的變數直接包含變數的例項,使用效率相對較高。而引用型別資料是分配在堆上,引用型別的變數通常包含乙個指向例項的指標,變數通過指標來引用例項。
引用型別一般都具有繼承性,但是值型別一般都是封裝的,因此值型別不能作為其他任何型別的基類。
引用和指標的區別是:

引用總是指向乙個物件,指標可能不指向物件;引用不能用const修飾,而指標可以;引用建立時必須初始化,而指標則可以在任何時候被初始化
c++中的友元函式說法正確的是:友元函式是不能被繼承的;友元函式沒有this指標

C 簡單筆試題

1 下列 b 不是計算機病毒的特性。a 傳染性 b 結構性 c 隱蔽性 d 可激發性 第 2 4 題基於如下所示的二叉樹。2 該二叉樹對應的樹林包括 棵樹。a 1b 2 c 3 d 4 3 如果用liink rlink法儲存該二叉樹,則各結點的指標域中共包含 個空指標。a 0 b 4c 8 d 12...

簡單筆試題

今天又遇到了一道筆試題,啊!就那樣錯了 function fn m,n var b fn 0 fn 1 fn 2 輸出啥?沒錯,輸出的是 undefined 0 1 其實題目還是不難,想想還是就明白了,第乙個傳入的引數是0,形參m就代表0,而形參n,沒傳入值為undefined 最後返回乙個物件,再...

簡單筆試題1

1 c 靜態成員和非靜態成員 當類中的某個成員使用static修飾符時,就會被宣告為靜態成員。類中的成員要麼是靜態成員,要麼是非靜態成員。一般情況下,靜態成員屬於整個類所有,被該類的所有例項所共享。而非靜態成員則屬於類的例項 物件所有,只被該例項所共享。因此,對於類的靜態成員來說,無論這個類建立了多...