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型数组都可传入
  • 相关阅读:
    Windows10下Opencv4+CMake+MinGW64+VSC安装教程
    相机标定问题-实践操作流程
    eNSP仿真学习,网络入门!
    SFTP服务的使用!!
    树莓派B+使用入门&RPI库安装&wringPi库安装
    Python基本语法初试
    基于51单片机+DAC0832的信号发生器
    各种标志位的含义
    根文件系统ramdisk.image.gz && uramdisk.image.gz
    Linux中/etc/inittab文件
  • 原文地址:https://www.cnblogs.com/spring-hailong/p/6110685.html
Copyright © 2011-2022 走看看