zoukankan      html  css  js  c++  java
  • c/c++ 数组传参

    在c/c++中,在进行数组传参时,数组的元素个数默认是不作为实参传入调用函数,也就是说c/c++ 不允许向函数传递一个完整的数组作为参数

    实例:

    1.形式参数是一个指针,实参包括数组长度:

    1  void myFunction(int *param,int length){
    2      for (int i = 0; i<length - 1; i++)
    3      {
    4          cout << param[i] << "	"<<endl;
    5      }
    6  }

    2.形式参数是一个已定义大小的数组:

    1 void myFunction(int param[10])
    2 {
    3     for (int i = 0; i<9; i++)
    4     {
    5         cout << param[i] << "	" << endl;
    6     }
    7 }

    3.形式参数是一个未定义大小的数组,实参包括数组长度:

    1 void myFunction(int param[],int length){
    2     for (int i = 0; i < length - 1; i++)
    3     {
    4         cout << param[i] << "	"<<endl;
    5     }    
    6 }

    主函数调用方法:

     1 #include<iostream>
     2 using std::cout;
     3 using std::endl;
     4 #define  SIZE 10
     5 class  NewMessage{
     6 private:
     7     //一般用来声明变量
     8     
     9 public:
    10     int array[SIZE];
    11     void myFunctionOne(int *param,int length);
    12     void myFunctionTwo(int param[SIZE]);
    13     void myFunctionThree(int param[], int length);
    14 };
    15 void main()
    16 {
    17     NewMessage  newMessage;
    18     newMessage.array[SIZE] = {1};
    19     newMessage.myFunctionOne(newMessage.array, SIZE);//方法1
    20     newMessage.myFunctionThree(newMessage.array, SIZE);//方法2
    21     newMessage.myFunctionTwo(newMessage.array);//方法3
    22 }
    23 //1.形式参数是一个指针,实参包括数组长度:
    24 void NewMessage::myFunctionOne(int *param,int length){
    25     for (int i = 0; i<length - 1; i++)
    26     {
    27         cout << param[i] << "	" << endl;
    28     }
    29 }
    30 
    31 //2.形式参数是一个未定义大小的数组,实参包括数组长度:
    32 void NewMessage::myFunctionThree(int param[], int length){
    33     for (int i = 0; i < length - 1; i++)
    34     {
    35         cout << param[i] << "	" << endl;
    36     }
    37 }
    38 
    39 //3.形式参数是一个已定义大小的数组:
    40 void NewMessage::myFunctionTwo(int param[SIZE])//注意:这种用法跟 void NewMessage::myFunctionTwo(int (&param)[SIZE])用法一样
    41 {
    42     for (int i = 0; i<SIZE; i++)
    43     {
    44         cout << param[i] << "	" << endl;
    45     }
    46 }

    如果想要传入一个数组是一个任意大小的那么应该用以下方法:

    1 template<int N>
    2 void  function(int (&array)[N]);//此方法叫非类型模板参数
    //任意大小的int型数组都可传入
  • 相关阅读:
    PCA 主成分分析实践 plink软件
    c语言中基本数据类型
    c语言中利用itoa函数将整数值以二进制、八进制、十六进制显示
    c语言中以10进制、8进制、16进制显示同一个数字
    c语言中实现文件的复制(文本复制和二进制复制)
    c语言 13-13
    c语言显示文件自身
    LYDSY模拟赛day2 Dash Speed
    LYDSY模拟赛day2 Market
    LYDSY模拟赛day2 Divisors
  • 原文地址:https://www.cnblogs.com/spring-hailong/p/6110685.html
Copyright © 2011-2022 走看看