記憶體位址所指向的是當前儲存資料的首位址,資料型別所指向的是當前儲存資料的長度(占用多大的記憶體空間)。
指標是一種資料型別,也需要占用記憶體空間,它的屬性是指向乙個資料型別的首位址和長度。指標儲存的是位址,長度取決於指標的型別。
在32位系統下,指標占用的空間為32bit(4byte);在64位系統下,指標占用的空間為64bit(8byte)。
指標的用處:
1.函式傳遞引數時,使用指標能節省記憶體空間,提高程式效率。例:myclass類占用500byte,而myclass *只占用4byte。
2.跨函式的值修改時,使用指標能完成。例:
void swap(int a,int b)
int main()
其中swap(x,y);並不能交換x和y的值,要使用指標進行交換,如下所示:
void swap(int *a,int *b)
int main()
3.進行資料結構的構造,如陣列本身就是乙個const 類的指標,另外鍊錶、二叉樹等資料結構也要用到指標。
#include "stdafx.h"
#include
#include
void swap(void * a ,void * b ,size_t size)
int main()
指標學習筆記
1 指標是什麼?要想明白指標的含義,首先應該明白變數在記憶體中是如何儲存的,如何讀取的。記憶體中每個記憶體單元都有乙個位址,這好比旅館中每個房間,都有唯一的房間號。至於記憶體單元中到底存放的是什麼內容,那是我們定義的變數。當我們定義乙個變數時,系統會根據我們宣告的資料型別而為變數分配適當的儲存空間。...
this指標學習筆記
1.this指標的用處 乙個物件的this指標並不是物件本身的一部分,不會影響sizeof 物件 的結果。this作用域是在類內部,當在類的非靜態成員函式中訪問類的非靜態成員的時候,編譯器會自動將物件本身的位址作為乙個隱含引數傳遞給函式。也就是說,即使你沒有寫上this指標,編譯器在編譯的時候也是加...
指標學習筆記
指標基本宣告與使用 int num 1 int pnum int nums 5 int pnums nums int p newint 10 p 10 cout pnum pnum endl pnums pnums endl p p endl delete p 將指標置為空 pnum 0 int z...