一、掌握高級指針
1、int iNumber; // 聲明一個整型變量
2、int *iPnumber; // 聲明一個指向整型的指針
3、int Func(); // 聲明一個函數,返回值是整型
4、int *Func();
// 首先執行函數調用操作符,所以Func是一個函數,返回值類型是一個指向整型的指針
5、int (*Func)();
// 第一個括號意味著Func是一個指針,第二個括號是函數調用,第一個括號迫使間接訪問在函數調用之前執行,所以Func是一個函數指針,它所指向的函數返回值是整型
6、int *(*Func)();
// 和上面第五個差不多,但Func所指向的函數返回值是又是一個指向整型的指針,對這個返回值進行間接訪問才會得到一個整型值
7、int iArr[]; // 聲明iArr是一個整型數組
8、int *iArr[];
// 下標優先級高,所以iArr依然是一個數組,但數組裡面的元素類型是指向整型的指針,即指針數組
9、int Func()[]; // Func是一個函數,返回值是個整型數組
10、int (*Func[])()
// 第一個括號內表示Func是一個某類型的指針數組,第二個括號為函數調用,所以Func所表示的指針數組其元素是函數指針,這些函數指針所指向的函數的返回值類型是整型
A、指向函數指針數組的指針
顧名思義,有一個指針指向了一個函數指針數組,那麼對這個指針進行間接訪問,將會得到一個函數指針數組
int (*Func)();
int (*(*Func)[])();
類似上面:
int *Func[];
int *FFunc;
FFunc=&(*Func);
二、系統開發工程實戰
三、C/C++內存管理
malloc/free分別用於動態內存分配和釋放。
malloc會從內存池裡提取一塊適合的內存(連續的),並返回指向這塊內存起始位置的指針,該指針的類型為void*指針(因為malloc不知道你請求的內存需要存儲的是什麼數據類型),而且這塊內存並沒有初始化。
new/delete
學習C語言入手很容易,但是堅持下去就是另一回事了,努力很簡單,但是堅持和努力很困難,可以加下我的群466572167,群內有初級的項目,入門的資料也有全套的,也能一起交流學習提升自己的能力,對於有基礎的話,群內也有各種項目可以練練手,
閱讀更多 java架構社區 的文章