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型数组都可传入
  • 相关阅读:
    ImageButton按压效果失效
    ListView.setSelection(position)不起作用
    活动(Activity)
    在微信公众号开发(微站)过程中用Zepto/jquery的on/live绑定的click事件点击无效(不能执行)
    解决Angular图片ng-src指令不马上更新图片的问题
    Angular简易分页设计(二):封装成指令
    Angular回到顶部按钮指令
    Angular简易分页设计(一):基本功能实现
    Python之反射,正则
    Python之模块,迭代器与生成器
  • 原文地址:https://www.cnblogs.com/spring-hailong/p/6110685.html
Copyright © 2011-2022 走看看