int a;int *p;第乙個比較熟悉,就是定義乙個整型變數。第二個就是定義了乙個整型指標變數p;
1.指標有什麼作用?
指標是儲存乙個位址!注意是位址,不是什麼具體的數值。
2.指標如何才能儲存變數a的位址呢?
p=&a; //&符號為取位址符,也就是取了a的位址。
3.如何輸出指標內的數值?
在c++中通過湊他cout<<*p;即可,注意是*p,因為p是乙個位址,*p才是指向這個位址的實際數值。
動態申請空間:
int a;是在記憶體中申請一塊區域來儲存。malloc是程式在執行時根據實際情況申請合適的空間,比如用傳統方式申請了100個記憶體,實際情況需要102個記憶體,那就必須修改你的程式,再重新發布新版本更新這個bug才行,費時費力。
4.如何使用malloc函式?
int *p = (int *)malloc(sizeof(int)); //malloc函式的預設返回型別是void *,這裡進行強制型別轉換。
*p = 10; //通過指標p對剛申請的記憶體進行操作,比如在這個空間存入整數10.
關於返回指標以及動態申請記憶體
首先,常量和全域性變數以及靜態變數都儲存於靜態儲存區,而區域性變數在棧區 其次,記憶體分配方式有三種 1 從靜態儲存區域分配。內存在程式編譯的時候就已經分配好,這塊內存在程式的整個執行期間都存在。例如全域性變數,static變數。2 在棧上建立。在執行函式時,函式內區域性變數的儲存單元都可以在棧上建...
關於返回指標以及動態申請記憶體
首先,常量和全域性變數以及靜態變數都儲存於靜態儲存區,而區域性變數在棧區 其次,記憶體分配方式有三種 1 從靜態儲存區域分配。內存在程式編譯的時候就已經分配好,這塊內存在程式的整個執行期間都存在。例如全域性變數,static變數。2 在棧上建立。在執行函式時,函式內區域性變數的儲存單元都可以在棧上建...
為什麼結構體指標需要malloc申請空間
例如此時 int init struct node head 結構體指標 初始化 newnode value 0 newnode next null head newnode 如果定義乙個結構體型別的普通變數,可以不malloc動態申請記憶體,cpu會為這個結構體變數分配記憶體 如果定義的是乙個結構...