C語言二維數(shù)組幾種常用的表示方法
名稱:二維數(shù)組的幾種表示方法
說明:常用的有以下幾種二維數(shù)組的表示方法:
- (1)、第一種是普通的二維數(shù)組的表示方法。
 - (2)、第二種是用一維數(shù)組來表示二維數(shù)組,從顯示的元素地址可以看出,二維數(shù)組和一維數(shù)組表示的二維數(shù)組在內(nèi)存中的儲(chǔ)存方式其實(shí)是一樣的,不過使用二維數(shù)組看起來要簡(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)、第四種方式為用指向指針的變量來表示。此種方式p是指向指針的指針,不能把普通的二維數(shù)組的首地址(如本例中的a)賦給它。(因?yà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)鏈接
上一篇:C++實(shí)現(xiàn)合并兩個(gè)排序的鏈表
欄 目:C語言
本文標(biāo)題:C語言二維數(shù)組幾種常用的表示方法
本文地址:http://www.jygsgssxh.com/a1/Cyuyan/410.html
您可能感興趣的文章
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用函數(shù)刪除字符
 - 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)式函數(shù)庫
 - 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
 - 04-02c語言中對(duì)數(shù)函數(shù)的表達(dá)式 c語言中對(duì)數(shù)怎么表達(dá)
 - 04-02c語言用函數(shù)寫分段 用c語言表示分段函數(shù)
 - 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排序法函數(shù)
 - 04-02c語言沒有round函數(shù) round c語言
 - 04-02c語言分段函數(shù)怎么求 用c語言求分段函數(shù)
 - 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
 - 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求階乘
 


閱讀排行
- 1C語言 while語句的用法詳解
 - 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
 - 3利用C語言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
 - 4C語言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
 - 5c語言計(jì)算三角形面積代碼
 - 6什么是 WSH(腳本宿主)的詳細(xì)解釋
 - 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
 - 8正則表達(dá)式匹配各種特殊字符
 - 9C語言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
 - 10C語言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
 
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
 - 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
 - 04-02c語言的正則匹配函數(shù) c語言正則表達(dá)
 - 04-02c語言用函數(shù)寫分段 用c語言表示分段
 - 04-02c語言中對(duì)數(shù)函數(shù)的表達(dá)式 c語言中對(duì)
 - 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
 - 04-02c語言沒有round函數(shù) round c語言
 - 04-02c語言分段函數(shù)怎么求 用c語言求分段
 - 04-02C語言中怎么打出三角函數(shù) c語言中怎
 - 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
 
隨機(jī)閱讀
- 01-10C#中split用法實(shí)例總結(jié)
 - 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
 - 04-02jquery與jsp,用jquery
 - 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什
 - 01-11ajax實(shí)現(xiàn)頁面的局部加載
 - 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
 - 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
 - 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
 - 01-10delphi制作wav文件的方法
 - 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
 


