#include<iostream>
using namespace std;
void inv(int *x,int n) //第一个形参是指针变量,第二个形参接收元素个数
{
int t,*i,*j;
i=x;//变量i指向第0个元素
j=x+n-1;//变量j指向最后一个元素
for(;i<j;i++,j--)//每次循环后指针i后移,指针j前移
{
t =*i; //通过间接访问改变主调函数中元素的值
*i=*j;
*j=t;
}
}
int main()
{
int i,a[10]={3,7,9,11,0,6,7,5,4,2};
cout<<"逆序前:";
for(i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
inv(a,10);//第一个实参是数组名,将地址传递给形参
cout<<"逆序后:";
for(i=0;i<10;i++)
cout<<a[i]<<" ";
cout<<endl;
return 1;
}
数组名作为函数参数,定义函数inv(int *n,in n),在函数中数组指针直接++或--表示后移多少个元素
for(;i<j;i++,j--)//每次循环后指针i后移,指针j前移
{
t =*i; //通过间接访问改变主调函数中元素的值
*i=*j;
*j=t;
}
前后数组元素对调。使用指针很方便 使用函数的时候,inv(a,10) a代表了数组的首地址,10代表传入的元素个数。