多维数组例题
例一:将a数组中第一个元素移动到数组末尾,其它数往前移一位。
分析:1.先把第一个元素存储到temp中,留到最后调用。
2.把剩余的元素按照a[1]=a[2],a[2]=a[3]……的形式排列
#include<iostream>
using namespace std;
const int n=10;
int a[n];
int main()
{
int i;
for(i=1;i<n;i++) cin>>a[i];
int temp=a[0];
for(i=0;i<n-1;i++)
{ a[i]=a[i+1]; }
a[n-1]=temp;
for(i=0;i<n;i++) cout<<a[i]<<endl;
return 0;
}
用数组名作函数参数的说明:
(1)如果函数实参是数组名,形参也应为数组名,形参不能声明为普通变量。实参数组与形参数组类型应一致,如不一致,结果将出错。
(2)数组名代表数组首元素的地址,并不代表数组中的全部元素。
(3)用数组名作函数实参时,不是把实参数组的值传递给形参,而只是将实参数组首元素的地址传递给形参。在调用函数时,将实参数组首元素的地址传递给形参数组名。这样,实参数组和形参数组就共占同一段内存单元。改变形参数组元素的值将同时改变实参数组元素的值。
声明形参数组并不意味着真正建立-一个包含若干元素的数组,在调用函数时也不对它分配存储单元,只是用array[这样的形式表示array是一-维数组名,以接收实参传来的地址。因此,array[ ]中方括号内的数值并无实际作用,编译系统对一维数组方括号内的内容不予处理。形参一维数组的声明中可以写元素个数,也可以不写。函数首部的下面几种写法都合法,作用相同:
void sort(int array[10],int n) //指定元素个数与实参数组相同
void sort(int array[ ],int n) //不指定元素个数
void sort(int array[5],intn) //指定 元素个数与实参数组不同C++实际上只把形参数组名作为一个指针变量来处理,用来接收从实参传过来的地址。