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型数组都可传入
  • 相关阅读:
    父子进程 signal 出现 Interrupted system call 问题
    一个测试文章
    《淘宝客户端 for Android》项目实战 html webkit android css3
    Django 中的 ForeignKey ContentType GenericForeignKey 对应的数据库结构
    coreseek 出现段错误和Unigram dictionary load Error 新情况(Gentoo)
    一个 PAM dbus 例子
    漫画统计学 T分数
    解决 paramiko 安装问题 Unable to find vcvarsall.bat
    20141202
    js
  • 原文地址:https://www.cnblogs.com/spring-hailong/p/6110685.html
Copyright © 2011-2022 走看看