c指標深入理解--指標和函式
阿新 • • 發佈:2021-12-24
一、程式的棧和堆:
堆:
-》棧
-》程式棧
-》棧幀(組織)
-》函式返回地址
-》區域性資料儲存
-》引數儲存
-》棧指標和基指標
1)棧指標:通常指向棧頂部
2)基指標:通常指向幀棧內部地址,比如函式返回地址、陣列
-》?動態堆(自定義申請)
二、通過指標傳遞和返回資料:
-》傳遞資料:
1)指標傳遞
void swapWithPointers(int* pnum1, int* pnum2) {
int tmp;
tmp = *pnum1;
*pnum1 = *pnum2;
*pnum2 = tmp;
}
下面的程式碼段說明了這個函式的用法:
int main() {
int n1 = 5;
int n2 = 10;
swapWithPointers(&n1, &n2);
return 0;
}
2)數值傳遞:(普通傳參方式)
3)傳遞指向常量的指標:(這種方式效率很高,因為只傳了資料的地址,能避免某些情況下複製大量記憶體)
-》返回資料:
三、函式指標:
概念區別:
函式指標:強調的是指標,如 int (*fun)()
指標函式:強調的是函式,如 int *fun()
-》傳遞函式指標:
-》返回函式指標: