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] << "\t"<<endl;
5 }
6 }
2.形式参数是一个已定义大小的数组:
1 void myFunction(int param[10])
2 {
3 for (int i = 0; i<9; i++)
4 {
5 cout << param[i] << "\t" << 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] << "\t"<<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] << "\t" << 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] << "\t" << endl;
36 }
37 }
38
39 //3.形式参数是一个已定义大小的数组:
40 void NewMessage::myFunctionTwo(int param[SIZE])//注意:这种用法跟 void NewMessage::myFunctionTwo(int (¶m)[SIZE])用法一样
41 {
42 for (int i = 0; i<SIZE; i++)
43 {
44 cout << param[i] << "\t" << endl;
45 }
46 }
如果想要传入一个数组是一个任意大小的那么应该用以下方法:
1 template<int N>
2 void function(int (&array)[N]);//此方法叫非类型模板参数
//任意大小的int型数组都可传入
c/c++ 数组传参的更多相关文章
- c++数组传参
最近感觉老是碰到数组传参的问题,特别是二维的数组,每次报错都感觉头疼,烦躁:这里必须总结一下了,先把暂时能解决的问题写在这吧,以便以后碰到查看! 先看一个一维数组传参:这样用数组传参是很不安全的:会输 ...
- C和C++引用传递和数组传参引用
引用传递有两种传参方式,具体可参考文章 概括地讲,就是 *声明一个形参是指针,所以需要传递指针实参,对应的函数实现也应当遵循指针的语法.这种实现思路并不针对于C或者C++,因为它们都有指针,所以都可以 ...
- C# 数组 深拷贝 和 数组传参
前言 C#中引用类型无法使用const,因此传参的时候使用引用类型,一定要注意是否会改变其值.下面介绍几种 数组的 深拷贝方法. 前提 下面的测试代码有一些前提, sw为Stopwatch nForT ...
- C++中用二维数组传参时形参该怎样写[转]
二维数组的存储方式是和一维数组没什么区别,但是用二维数组做参数,它的形参该怎样写? 要注意的是:函数中的形参其实就相当于一个声明,并不产生内存分配,形参的目的就是要让编译器知道函数参数的数据类型. 正 ...
- C语言学习笔记 (006) - 二维数组传参的三种表现形式
# include <stdio.h> # include <stdlib.h> # define M # define N int getdate(int (*sp)[M]) ...
- c指针与数组,传参问题,指针数组与数组指针的区别,二维数组动态内存分配
一 数组的结构:顺序存储,看谭浩强中的图,牢记 1.数组名指代一种数据结构:数组 现在可以解释为什么第1个程序第6行的输出为10的问题,根据结论1,数组名str的内涵为一种数据结构,即一个长度为10的 ...
- 【C/C++】二维数组的传参的方法/二维字符数组的声明,使用,输入,传参
[问题] 定义了一个子函数,传参的内容是一个二维数组 编译提示错误 因为多维数组作为形参传入时,必须声明除第一位维外的确定值,否则系统无法编译(算不出偏移地址) [二维数组的传参] 方法一:形参为二维 ...
- JSON传参
通过javascript将数据组织成json格式,然后传到java后台. 注意:前台json数组传参到后台时候需要将对象(json或json数组)转换成字符串(字符串数组). Simple: 1.前台 ...
- 9-11.Yii2.0框架控制器分配视图并传参xss攻击脚本视图的过滤
目录 一维数组传参 新建控制器: 新建view模板 二维数组传参 新建控制器: 新建view模板 视图非法字符的过滤 新建控制器: 新建view模板 一维数组传参 新建控制器: D:\xampp\ht ...
随机推荐
- JQuery前端技术记录
[Jquery-leearning notes-2015]by lijun 1 Jquery是javascript实现的库,目标在于改变web应用的高交互性的方式. 其不唐突性:样式(.css). ...
- Jmeter 登陆性能测试
1.打开Jmeter,新建一个线程组:测试计划--添加--Threads(users)---线程组 如图: 2.首先要添加一个HTTP默认请求,为什么要添加这个呢? 如果要测试的系统域名或者IP地址是 ...
- P3909 异或之积
P3909 异或之积 为什么叫做异或之积? 答曰:只要不关乎Alice和Bob就行 做完这道水题,感觉自己弱爆了. 一开始就要考虑暴力\(O(n^3)\)的优化. 然后就注意到了题目中的\(6\)为什 ...
- TridentState分析
public class TridentState { TridentTopology _topology; Node _node; protected TridentState(TridentTop ...
- Storm 中drpc调用
package storm.starter; import backtype.storm.Config; import backtype.storm.LocalCluster; import back ...
- tomcat解决端口号占用问题
1.第一种方法 更改tomcat自己的端口号: conf 目录下 找到 server.xml,把默认的8080端口改个别的试试,tomcat 一般端口号改的要大于 6000,. 2.第二种方法 关闭端 ...
- sql树形查询
sql: 使用Common As:递归公用表 https://docs.microsoft.com/en-us/sql/t-sql/queries/with-common-table-expressi ...
- data-ng-model 指令
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- Python 学习笔记(七)Python字符串(三)
常用字符串方法 split() 分割字符串,指定分隔符对字符串进行分割 join() 将序列中的元素以指定的字符连接生成一个新的字符串 str.strip() 用于移除字符串头尾指定的字符(默认 ...
- OI 刷题记录——每周更新
每周日更新 2016.05.29 UVa中国麻将(Chinese Mahjong,Uva 11210) UVa新汉诺塔问题(A Different Task,Uva 10795) NOIP2012同余 ...