用指向数组的指针作函数参数
2013-07-25 22:49
330 查看
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]的值
相关文章推荐
- 声明一个指向含有10个元素的数组的指针,其中每个元素是一个函数指针,该函数的返回值是int,参数是int*,正确的是()
- 用指向指针的指针作函数的参数(指针、指针数组、指向指针的指针)
- C++中用指向数组的指针作函数参数
- 用变量a给出下面的定义:一个有10个指针的数组,该指针指向一个函数,该函数有一个整形参数并返回一个整型数
- //8----14//指向数组的指针作函数参数
- 用指向数组的指针作函数参数.etc
- 3个学生,各学4门课,计算总平均分数以及第n个学生的成绩(用指向数组的指针作函数参数)
- 指向数组的指针作函数参数
- 用指向数组的指针作函数参数
- 建立一个对象数组,内放5个学生的数据(学号,成绩),用指向对象的指针做函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。
- 定义一个含10个函数指针的数组,指向的函数带一个整形参数
- 建立一个对象数组,内放5个学生数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并从输出学号。
- 用指向数组的指针作函数参数
- 如何传递指向结构数组的指针 (函数参数)
- 指向结构体类型的指针数组做函数参数
- 二维数组做函数参数,如何将三维数组降为二维数组,指向数组的指针的使用
- [C++程序设计]用指向数组的指针作函数参数
- 用指向数组的指针作函数参数
- C为什么要把数组类型的函数参数认为是指向数组第一个元素的指针
- Chapter9——建立一个对象数组,内放5个学生的数据(学号,成绩),设立一个函数max,用指向对象的指针做函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。