C++中用指向数组的指针作函数参数

 更新时间:2013年10月17日 09:01:51   作者:  
多维数组名作为函数参数传递:在二维数组中,数组名a是指向首行a[0]的指针,也就是说a=&a[0]; a[0]是指向首元素a[0][0]的指针,也就是说a[0]=&a[0][0]

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]的值

相关文章

  • Visual Studio Code配置C/C++开发环境的教程图解

    Visual Studio Code配置C/C++开发环境的教程图解

    这篇文章主要介绍了Visual Studio Code配置C/C++开发环境的教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06
  • C语言实现会员计费系统

    C语言实现会员计费系统

    这篇文章主要为大家详细介绍了C语言实现会员计费系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • C语言入门学习之fgets()函数和fputs()函数

    C语言入门学习之fgets()函数和fputs()函数

    fgetc() 和 fputc() 函数每次只能读写一个字符,速度较慢,实际开发中往往是每次读写一个字符串或者一个数据块,这样能明显提高效率,这篇文章主要给大家介绍了关于C语言入门学习之fgets()函数和fputs()函数的相关资料,需要的朋友可以参考下
    2021-11-11
  • C++中的 % 的含义说明

    C++中的 % 的含义说明

    很多朋友私信小编不理解C++中的 % 的含义,其实有两种意思,一种是格式化字符串输出另一种是整数取余,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2023-03-03
  • C语言PlaySound函数使用方法

    C语言PlaySound函数使用方法

    这篇文章介绍了C语言PlaySound函数的使用方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-12-12
  • VSCode配置C/C++语言环境(2023最新版)

    VSCode配置C/C++语言环境(2023最新版)

    这篇文章主要介绍了VSCode配置C/C++语言环境(2023最新版)的全过程,本文给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-11-11
  • C语言深入分析数组指针和指针数组的应用

    C语言深入分析数组指针和指针数组的应用

    在C语言和C++等语言中,数组元素全为指针变量的数组称为指针数组,指针数组中的元素都必须具有相同的存储类型、指向相同数据类型的指针变量。指针数组比较适合用来指向若干个字符串,使字符串处理更加方便、灵活
    2022-04-04
  • VisualStudio2022不支持.NET Framework 4.0项目解决办法

    VisualStudio2022不支持.NET Framework 4.0项目解决办法

    本文主要介绍了VisualStudio2022不支持.NET Framework 4.0项目解决办法,文中通过图文的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • Matlab实现极坐标堆叠柱状图的绘制

    Matlab实现极坐标堆叠柱状图的绘制

    极坐标堆叠图也是风玫瑰图的常用形式,MATLAB的bar绘制的条形图可以绘制成堆叠形式,但是并没有一个自带函数可以绘制极坐标堆叠图。本文将为大家提供Matlab绘制极坐标堆叠柱状图的示例代码,需要的可以参考一下
    2022-08-08
  • 二叉树入门和刷题详解

    二叉树入门和刷题详解

    这篇文章主要介绍了二叉树入门和刷题详解的相关资料,需要的朋友可以参考下
    2023-07-07

最新评论