07--Array(01)

来源:互联网 发布:万方数据库的检索途径 编辑:程序博客网 时间:2024/05/16 10:15
  1. 数字形参和实参
    传给一个函数的实参可以是一个完整的数组,但这个完整的数组所代表的一个实参既非传值调用参数,也非传引用调用参数,而是一种新的实参类型,称为数组实参。一旦数组实参替换数组形参,它实际传给函数的是数组实参的第一个索引变量(索引为0的哪一个)的内存地址。数组实参本身不能告诉函数这个数组的长度。所以,为一个函数使用一个数组形参时,通常还需要使用一个int类型的形参,用它来给出数组的长度。
    数组实参与传引用调用参数的共同点在于: 如果函数主体更改了数组形参,那么调用函数时,那个更改会实际作用于数组实参。所以函数能更改一个数组实参的值。
    Grammar:
    Type_Returned Function_Name(…, Base_Type Array_name[], …);
    Example:
    void sum_array(double& sum, double a[], int size);
  2. 常量数组形参(const array parameter)
    在函数调用中传递一个实参时,函数能更改存储在数组中的值。在复杂的函数中,有时候不希望更改传进来的数组,为了让编译器知道一个函数的实参不能由你的函数更改,可以在相应的数组形参之前加const修饰符。添加了const修饰符之后,一旦在函数中错误更改了数组实参中的任何值,编译器就会报错。
  void show(const int a[], int size)  {      cout<<"The array contains the following values:\n ";      for(int i=0; i<size; i++, a[i]++)          cout<<a[i]<<endl;  }
 编译这个函数时,编译器会报错。错误更改了数组a[i]的值。
0 0
原创粉丝点击