您好,登錄后才能下訂單哦!
這篇文章主要介紹了c++二維指針,數組指針和指針數組實例分析的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇c++二維指針,數組指針和指針數組實例分析文章都會有所收獲,下面我們一起來看看吧。
1、c++
c/c++的重要性毋庸置疑,凡是對性能要求很高的系統和算法,其中核心代碼都會考慮用c++編寫。當我們拿tensorflow框架跑一遍,發現時間效率不能滿足我們的要求時,往往核心邏輯就會考慮用c++定制改寫。
c++的精華無疑是指針,指針的靈活,創建和銷毀完全靠我們掌控。用到指針,一般都會用到二維指針或數組指針,下面總結下它們的某些應用場景。
2、二維指針
二維指針:指針變量指向的是指針,如:
char **pa;
常用二維指針的場合是第一維和第二維元素個數都不確定的情況下,或者個數是動態變化的場合。
二維指針如何申請堆地址?
一般,先對第一維申請m個:
pa = new char* [m];
然后再對第二維,依次申請n個:
for(int i=0; i<m; i++){
pa[i] = new char[n];
}
這樣就申請了一個m行n列的二維動態數組。
如何釋放呢?
與申請順序相反:
for(int i=0; i<m; i++){
delete[] pa[i];
}
最后釋放pa:
delete[] pa;
3、數組指針
數組指針,是指向數組的指針,如:
char (*pa)[2];
這種結構在什么時候用呢? 和二維指針相比,它有一個維度的個數必須是確定的,此處等于2,它創建如下:
pa = new char[m][2];
釋放:
delete [] pa;
4、指針數組
指針數組是數組,里面的元素是指針。
int *p[3];
p[0] = new int[4];
p[1] = new int[5];
p[2] = new int[6];
delete p[0];
delete p[1];
delete p[2];
可以看到每一個元素儲存的元素個數都是可以不同的,分別釋放。
關于“c++二維指針,數組指針和指針數組實例分析”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“c++二維指針,數組指針和指針數組實例分析”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。