2023年9月14日:
指標陣列和陣列指標
指標陣列是指:陣列元素都是指標
int
*ptr[5];
int a = 2, b = 3, c = 6,*p, *q;
p = &a;
q = &b;
ptr[0] = &a;//存入的是a的位址
ptr[1] = &b;
ptr[2] = &c;
cout <<"ptr[0] "
<< *ptr[0] << endl;
cout << "ptr[1] "
<<*ptr[1] << endl;
cout << "ptr[2] "
<<*ptr[2] << endl;
cout << "p "
<"q "
<
int test[3][2] = ;
int(*ptr)[2];
ptr = &test[0];
cout << (*ptr)[0] << (*ptr)[1] << (*ptr)[2] << endl;
與函式指標一樣,,用指標代替 標籤(函式名,陣列名)
2. 空指標和迷途指標
空指標:是指指標指向的位址為空
迷途指標:是指 釋放記憶體以後的指標,此時指標雖然任然指向該記憶體位址,但是該記憶體或許分配給其它變數,稱它是迷途的、懸浮的。
此時應該 對該指標賦空值。 不然會導致程式崩潰(使用時)
注:使用空指標也會崩潰,但是是可**的
3. c++有了malloc/free 為什麼還用new/delete
malloc/free是c++標準庫函式,而new/delete是運算子,物件在產生時會自動執行建構函式,物件消亡時會自動執行析構函式,由於malloc是標準庫函式,不在編譯器控制範圍內,因此還要用到new/delete運算子。
4. 控制代碼和指標有什麼不同
指標標記某個物理記憶體位址。
控制代碼:在windows系統中,控制代碼用來標記系統資源,隱藏系統資訊。
windows經常在記憶體中來回移動物件來滿足應用程式需要,因此物件位址會來回變更,所以windows會專門開闢一塊固定記憶體(控制代碼位址),來儲存物件新變化得位址,即控制代碼是指向指標的指標。(乙個記憶體位址存放另乙個物件的記憶體位址)
5.
關於指標的一些總結
指標和陣列一樣,都是基於其它型別的。指標的宣告 int p updates 運算子兩邊的空格是可選的。對每個指標變數命名,都需要乙個 變數名,為取址,它的值為變數的位址 32位 指標變數,為指標儲存的位址所儲存的值。可以通過改變它來改變。malloc 可以分配記憶體,但c 更好的方法是使用new。i...
const 指標的一些總結
前兩天在網上看到華為的一些筆試題,對基礎的掌握仍然是這種大公司所重視的。其間對指標掌握的要求比較多,有一道是關於const指標的。看到那道題,回來整理了一些有關const指標的內容,分享一下。const說明指標變數,組合的情況可能會顯得很複雜。使用指標時要涉及兩個目標,即指標本身和指標所指的物件。關...
指標變數的一些總結
作用 利用指標,可以直接處理記憶體中各種資料結構的資料,特別是陣列,字串。靈活,正確運用指標,可以提高程式的執行效率,編寫出精煉而高效的程式。指標變數必須先定義,後使用。定義的一般形式為 資料型別識別符號 指標變數名 int p double d char pc 注意 1,指標變數資料型別必須與所賦...