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

首頁 > 編程 > C++ > 正文

C++中用指向數組的指針作函數參數

2020-01-26 15:43:47
字體:
來源:轉載
供稿:網友

1.一維數組名作為函數參數傳遞
一位數組名,就相當于該數組的首個元素的地址;

復制代碼 代碼如下:

int a[10];
int *p;
p=a;
//p=a與p=&a[0]是等價的

實例代碼:
復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
 int a[10]={1,2,3,4,5,6,7,8,9,10};
 void Print(int *p ,int n);
 Print(a,10);
 cout<<endl;
 return 0;
}
void Print(int *p ,int n){
 int i=0;
 for(;i<n;i++){
  cout<<*(p+i)<<" ";
 }
}

在主函數中,將數組名a作為實參的值,也就是將&a[0]作為實參的值,然后在Print函數中,指向int型變量的指針p用于接收傳遞過來的值,并進行輸出操作。

2.多維數組名作為函數參數傳遞
在二維數組中,數組名a是指向首行a[0]的指針,也就是說a=&a[0]; a[0]是指向首元素a[0][0]的指針,也就是說a[0]=&a[0][0]

實例代碼:

復制代碼 代碼如下:

#include<iostream>
using namespace std;
int main(){
 int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
 void Print(int (*p)[4] );
 Print(a);
 cout<<endl;
 return 0;
}
void Print(int (*p)[4] ){
 int i=0,j=0;
 for(i=0;i<3;i++){
  for(j=0;j<4;j++){
      cout<<*(*(p+i)+j)<<" ";
  }
 }
}

p是指向a[0]的指針,那么p+i就是指向a[i]的指針,*(p+i)就是指向a[i][0]的指針,那么*(p+i)+j就是指向a[i][j]的指針,所以*(*(p+i)+j)就是a[i][j]的值

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 渭南市| 金阳县| 株洲市| 东至县| 开原市| 庄河市| 手机| 盈江县| 东山县| 乌拉特中旗| 胶州市| 南川市| 盐亭县| 喜德县| 上栗县| 教育| 丘北县| 普宁市| 枣阳市| 包头市| 灵山县| 临沧市| 清河县| 澄城县| 特克斯县| 陆丰市| 游戏| 沐川县| 泸定县| 江永县| 阳山县| 繁昌县| 德安县| 滁州市| 分宜县| 思南县| 柏乡县| 中方县| 象州县| 新巴尔虎右旗| 荥阳市|