1.c++動態分配記憶體空間 : new 和 delete
int a[10]這種方式,記憶體大小需要用常量指定,比如這裡的10。不能用int m=10;int a[m]這種方式。但是int* a= new這種方式可以,因此在動態分配記憶體上,後者有非常大的優勢。
int
*a =
newint(10
);//開闢乙個int型別指標賦值給a,並位址中的內容賦值為10。
int*b =
newint
[100];
//開闢乙個大小為100的整型陣列空間。
int
* a =
newint(10
);//開闢乙個int型別指標賦值給a,並位址中的內容賦值為10。
delete a;
//釋放單個int的空間
int* b =
newint
[100];
//開闢乙個大小為100的整型陣列空間。
delete
a;//釋放int陣列空間
使用new運算子動態配置的空間,在整個程式結束後不會自動還給系統,因此需要自己使用delete歸還記憶體空間。
當由於new申請空間過大等原因導致分配記憶體失敗時,new返回乙個null。
當new申請乙個陣列時,需要用delete釋放。
delete p;只是釋放*p中的內容,而不改變指標p本身,p存放的依然是申請空間時的位址。
new和delete是c++中的運算子,不是函式
2.排序演算法
for
(int i =
0; i < len -
1; i++)}
}
for
(int i =
0; i < len -
1; i++)}
temp = arr[i]
; arr[i]
= arr[min]
; arr[min]
= temp;
}
9 6中興嵌入式軟體開發筆試
乙個舞蹈學院提供早晚課程。每個加入該學院的人都會獲得乙個唯一的id。人們可以選擇任意數量的舞蹈形式。有些在任何舞蹈形式上都不是很完美的人早晚課程都參加。舞蹈教練為參加課程的所有人員準備了乙份早晚課程的單獨列表。人員的id在列表中重複的次數與他 她選擇的舞蹈形式的數量相同。該學院計畫在年度活動中展示各...
嵌入式筆試題
考查逗號表示式 main 這段程式的輸出是 a c 3 d 3 b c 5 d 3 c c 3 d 5 d c 5 d 5 應該選c。c語言提供一種特殊的 運算子,逗號運算子,優先級別最低,它將兩式聯接起來,如 3 5,6 8 稱為逗號表示式,其求解過程先表示式1,後表示式2,整個表示式值是表示式2...
嵌入式 筆試題
指出下列程式的執行結果 int main memcpy a 3,a,5 for int i 0 i 10 i return 0 解答 0 1 2 0 1 5 6 7 8 9 注意 1 陣列a作為引數時,轉化為普通指標 a 3 按照char長度計算 2 memcpy的原型是 void memcpy v...