什麼是指標以及如何動態申請空間

2021-08-01 03:56:06 字數 547 閱讀 5041

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會為這個結構體變數分配記憶體 如果定義的是乙個結構...