c/c++ 数组传参

摘要:
在c/c++中,在传递数组参数时,默认情况下,数组的元素数不会作为实际参数传递给调用函数,也就是说,c/c++不允许将完整的数组作为参数实例传递给函数:1.形式参数是指针,实际参数包括数组长度:1void myFunction(int*param,int length){2 for(int=0;i˂length-1;i++)3{4 cout˂˂param[i]˂˂“˂˂endl;5}6}2。形式参数是定义的大型

在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型数组都可传入

免责声明:文章转载自《c/c++ 数组传参》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux操作系统的curl命令的基本使用CAD 中常用图形对象下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux C++ 共享库导出类

1.共享库的对外接口函数的声明必须加上extern “C”。 2.使用共享库对话接口函数生成的对象指针时在该对象未被释放之前不能关闭共享库句柄,否则会出现segmentation fault错误。 以下是一个插件式设计的示例: 1、主执行程序:main.cpp #include #include #include "SMSGamePlugin.h" int...

数据结构学习——shell排序的C语言实现

shell排序:   这个排序的命名是来自发明者的名字,和排序的方法没有字面上的联系。所以不要因为名字而感觉很难。在K&R的C程序设计语言中书中只用了几行代码很简洁的实现了这个排序算法。那就来看看这个排序是如何实现的。 原理:   我们将所要排序的序列(大小为n)划分成组,组的数量一般是可以用这个序列的大小的一半来定义(也就是d = n/2),然...

JS中的map()方法

map定义和方法 map()方法返回一个新数组,数组中的元素为原始数组元素调用函数处理的后值。 map()方法按照原始数组元素顺序依次处理元素。 注意: map不会对空数组进行检测 map不会改变原始数组 arr.map(function(currentValue,index,arr),thisValue) 参数说明 function(currentVal...

ThinkPHP数组在JS里使用

使用模型查询的返回的结果集为对象,其中里面的数据,TP5框架会自动对里面的data:protected该项进行处理。 但有时我们就想要数据,就想返回一个数组就可以了,怎么办?有两种方法可以实现: 方法一:找到TP5框架中的database.php文件,该文件中找到 resultset_type 该项,将后面的 array 改成 hinkCollection...

kuangbin专题 专题九 连通图 POJ 3694 Network

题目链接:https://vjudge.net/problem/POJ-3694 题目:给定一个连通图,求桥的个数,每次查询,加入一条边,问加入这条边后还有多少个桥。 思路:tarjan + 并查集 + lca(朴素) 先用tarjan缩点(成环缩点),并存下桥,把每个scc都存下一个源点(源点(boss):以这个点代表这个scc)。 用存下的桥,用并查集...

过滤器 ||(filter)

http://www.cnblogs.com/lvdabao/p/3475426.html 原文地址 filter的两种使用方法 1. 在模板中使用filter 我们可以直接在{{}}中使用filter,跟在表达式后面用 | 分割,语法如下: {{ expression | filter }} 也可以多个filter连用,上一个filter的输出将作为下...