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