C語(yǔ)言二維數(shù)組幾種常用的表示方法
名稱:二維數(shù)組的幾種表示方法
說(shuō)明:常用的有以下幾種二維數(shù)組的表示方法:
- (1)、第一種是普通的二維數(shù)組的表示方法。
- (2)、第二種是用一維數(shù)組來(lái)表示二維數(shù)組,從顯示的元素地址可以看出,二維數(shù)組和一維數(shù)組表示的二維數(shù)組在內(nèi)存中的儲(chǔ)存方式其實(shí)是一樣的,不過(guò)使用二維數(shù)組看起來(lái)要簡(jiǎn)單些,只要不用進(jìn)行地址轉(zhuǎn)換。
- (3)、第三種表示是用指針數(shù)組。本例中的c[i]中的元素其實(shí)是地址。這種方法對(duì)各個(gè)元素大小不一樣的情況下比較適用。如:假定有若干個(gè)不等長(zhǎng)字符串需要我們處理,如果使用a [i ][j]結(jié)構(gòu),則j必須取這些字符串長(zhǎng)度的最大值, 顯然這種方法浪費(fèi)空間。如果采用* a [i ]結(jié)構(gòu),則由于a中僅保存每個(gè)字符串的首地址,而不是串本身,這不僅節(jié)約了空間,而且減少了直接對(duì)串進(jìn)行操作的時(shí)間。
- (4)、第四種方式為用指向指針的變量來(lái)表示。此種方式p是指向指針的指針,不能把普通的二維數(shù)組的首地址(如本例中的a)賦給它。(因?yàn)閍不是指向指針的指針)??梢园训谌N方式中的數(shù)組指針的首地址賦給它。這種方式用的較少。
#include<iostream>
using namespace std;
int main()
{
int a[3][3] = {{0,1,2},{3,4,5},{6,7,8}};
int b[9] = {0,1,2,3,4,5,6,7,8};
int *c[3];
int **p;
cout<<"普通二維數(shù)組表示"<<endl;
for(int i = 0;i<3;++i)
{
for(int j = 0;j<3;++j)
{
cout<<a[i][j]<<"("<<&a[i][j]<<")"<<" "; //括號(hào)里是對(duì)應(yīng)元素的地址
//cout<<*(*(a+i)+j)<<" ";
}
cout<<endl;
}
cout<<"普通一維數(shù)組表示"<<endl;
for(int i = 0;i<3;++i)
{
for(int j = 0;j<3;++j)
{
cout<<b[i*3+j]<<"("<<&b[i*3+j]<<")"<<" ";
}
cout<<endl;
}
cout<<"指針數(shù)組表示:"<<endl;
for(int i = 0;i<3;++i)
{
c[i] = *(a+i); //c[i]指向a數(shù)組的第i行首地址
for(int j = 0;j<3;++j)
{
cout<<c[i][j]<<"("<<&c[i][j]<<")"<<" ";
}
cout<<endl;
}
cout<<"指針變量表示"<<endl;
p = c; //p為指向指針的指針,將指針數(shù)組c賦給指針變量p
for(int i = 0;i<3;++i)
{
for(int j = 0;j<3;++j)
{
cout<<p[i][j]<<"("<<&p[i][j]<<")"<<" ";
}
cout<<endl;
}
return 0;
}
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- 關(guān)于C語(yǔ)言一維數(shù)組算法問(wèn)題詳解
- C語(yǔ)言一維數(shù)組初步學(xué)習(xí)筆記
- 關(guān)于C語(yǔ)言中的指針與二維數(shù)組
- C語(yǔ)言二維數(shù)組指針的概念及使用
- C語(yǔ)言與java語(yǔ)言中關(guān)于二維數(shù)組的區(qū)別
- 從頭學(xué)習(xí)C語(yǔ)言之二維數(shù)組
- C語(yǔ)言面試C++二維數(shù)組中的查找示例
- C語(yǔ)言二維數(shù)組中的查找的實(shí)例
- C語(yǔ)言 指針與二維數(shù)組詳解
- 直觀理解C語(yǔ)言中指向一位數(shù)組與二維數(shù)組的指針
- C語(yǔ)言中的一維數(shù)組與二維數(shù)組的實(shí)現(xiàn)
相關(guān)文章
使用C語(yǔ)言實(shí)現(xiàn)vector動(dòng)態(tài)數(shù)組的實(shí)例分享
vector是指能夠存放任意類型的動(dòng)態(tài)數(shù)組,而C語(yǔ)言中并沒(méi)有面向?qū)ο蟮腃++那樣內(nèi)置vector類,所以我們接下來(lái)就來(lái)看一下使用C語(yǔ)言實(shí)現(xiàn)vector動(dòng)態(tài)數(shù)組的實(shí)例,需要的朋友可以參考下2016-05-05
C語(yǔ)言堆排序經(jīng)典算法TopK問(wèn)題解析
這篇文章主要為大家介紹了C語(yǔ)言堆排序經(jīng)典算法TopK問(wèn)題解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
C++中opencv4.1.0環(huán)境配置的詳細(xì)過(guò)程
這篇文章主要介紹了C++中opencv4.1.0環(huán)境配置的詳細(xì)過(guò)程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10
C++中聲明類的class與聲明結(jié)構(gòu)體的struct關(guān)鍵字詳解
這篇文章主要介紹了C++中聲明類的class與聲明結(jié)構(gòu)體的struct關(guān)鍵字,默認(rèn)情況下結(jié)構(gòu)的所有成員均是公有的,而類的所有成員是私有的,需要的朋友可以參考下2016-01-01

