国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言二維數組幾種常用的表示方法

2020-01-26 13:30:56
字體:
來源:轉載
供稿:網友

名稱:二維數組的幾種表示方法

說明:常用的有以下幾種二維數組的表示方法:

  • (1)、第一種是普通的二維數組的表示方法。
  • (2)、第二種是用一維數組來表示二維數組,從顯示的元素地址可以看出,二維數組和一維數組表示的二維數組在內存中的儲存方式其實是一樣的,不過使用二維數組看起來要簡單些,只要不用進行地址轉換。
  • (3)、第三種表示是用指針數組。本例中的c[i]中的元素其實是地址。這種方法對各個元素大小不一樣的情況下比較適用。如:假定有若干個不等長字符串需要我們處理,如果使用a [i ][j]結構,則j必須取這些字符串長度的最大值, 顯然這種方法浪費空間。如果采用* a [i ]結構,則由于a中僅保存每個字符串的首地址,而不是串本身,這不僅節約了空間,而且減少了直接對串進行操作的時間。
  • (4)、第四種方式為用指向指針的變量來表示。此種方式p是指向指針的指針,不能把普通的二維數組的首地址(如本例中的a)賦給它。(因為a不是指向指針的指針)。可以把第三種方式中的數組指針的首地址賦給它。這種方式用的較少。
#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<<"普通二維數組表示"<<endl;  for(int i = 0;i<3;++i)  {    for(int j = 0;j<3;++j)     {      cout<<a[i][j]<<"("<<&a[i][j]<<")"<<" ";  //括號里是對應元素的地址      //cout<<*(*(a+i)+j)<<" ";    }    cout<<endl;  }  cout<<"普通一維數組表示"<<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<<"指針數組表示:"<<endl;  for(int i = 0;i<3;++i)  {    c[i] = *(a+i);   //c[i]指向a數組的第i行首地址    for(int j = 0;j<3;++j)    {      cout<<c[i][j]<<"("<<&c[i][j]<<")"<<" ";    }    cout<<endl;  }  cout<<"指針變量表示"<<endl;  p = c;   //p為指向指針的指針,將指針數組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;}

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 襄垣县| 太湖县| 余庆县| 沿河| 准格尔旗| 陵水| 永吉县| 遵化市| 葫芦岛市| 宜君县| 和顺县| 泰州市| 高青县| 琼海市| 汉沽区| 高平市| 子长县| 马山县| 庆元县| 游戏| 习水县| 丹棱县| 灌南县| 永年县| 尚志市| 新丰县| 永德县| 吉隆县| 搜索| 云南省| 吴桥县| 榆林市| 淮阳县| 如东县| 河间市| 大理市| 息烽县| 道孚县| 静宁县| 汝州市| 岫岩|