记录学习过程8

1.数组元素作为函数参数————值传递形式

#include <iostream>using namespace std;int func(int n);
int main()
{int a[5] = { 1,5,7,9,17 };cout << "数组元素作为函数实参进行传递后的结果:" << endl;for (int i = 0; i < 5; i++){a[i] = func(a[i]);          //转到函数func()进行计算cout << a[i] << endl;}return 0;
}int func(int n)
{n *= n;return n;
}
数组元素作为函数实参进行传递后的结果:
1
25
49
81
289

2.数组名作为函数实参————地址传递参数形式

#include <iostream>using namespace std;void func(int array[],int n);
int main()
{int a[5] = { 1,5,7,9,17 };cout << "数组元素作为函数实参进行传递后的结果:" << endl;func(a,5);for (int i = 0; i < 5; i++){cout << a[i] << endl;}return 0;
}void func(int array[],int n)
{for (int j = 0; j < n; j++)array[j] *= array[j];}
数组元素作为函数实参进行传递后的结果:
1
25
49
81
289

//复制于'Ecalpal'网友的补充:

C++数组作为函数参数传递的两种方法,数组元素作函数参数的方法不return就会报错,数组名作函数的却不会是为什么?

1.函数定义一般以
返回类型 函数名(形参){};
形式出现,int func(int a,int b) {}这样的是有返回值有形参,这种函数存在的意义是外部有变量要传递进来做处理。
我的理解是调用该函数的时候,会为函数的形参分配内存,函数调用结束后,形参的内存会被释放,所以要return。
2.实参变量对形参变量的数组传递是值传递,是单向的,不能形参传给实参;
但是数组名作为函数参数时,实际上是地址传递,不是值传递,会把实参数组的首地址传递给形参,这样实参和形参地址指向就一样了,所以可以理解为双向传递,与普通变量的差别就在此。

C++数组作为函数参数相关推荐

  1. shell 使用数组作为函数参数的方法

    使用shell开发一些小工具,当使用数组作为函数参数时,发现只能传递数组的第一个元素,数组后面的元素不能传递到函数内. #!/bin/bashfunction showArr(){arr=$1for ...

  2. 【C 语言】结构体 ( 结构体 数组 作为函数参数 | 数组 在 堆内存创建 )

    文章目录 一.结构体 数组 作为函数参数 ( 数组 在 堆内存创建 ) 二.完整代码示例 一.结构体 数组 作为函数参数 ( 数组 在 堆内存创建 ) 在上一篇博客 [C 语言]结构体 ( 结构体 数 ...

  3. 数组作为函数参数进行传递

    今天编程序时发生了个这样的错误: 在头文件里 定义了一个数组: View Code 1 char s[]="1234567890"; 又定义了一个现显示组的函数: View Cod ...

  4. C-指针,二级指针,二维数组作为函数参数使用,C语言链表(详解)

    一级指针 int *p;            //表示定义一个int型(4字节)的指针p &p                 //表示p自身的地址位置 p                  ...

  5. ajax参数中字符串最大长度_6.7 C++数组名作函数参数 | 求3*4矩阵中最大的值

    C++用数组元素作函数实参 C++中实参可以是表达式,而数组元素可以是表达式的组成部分,因此数组元素可以作为函数的实参,与用变量作实参一样,将数组元素的值传送给形参变量. C++也可以用数组名作函数参 ...

  6. C语言多维数组做函数参数技术推演

    多维数组做函数参数技术 C语言中只会以机械式的值拷贝的方式传递参数(实参把值传给形参) 二维数组参数同样存在退化的问题 等价关系 C语言中只会以机械式的值拷贝的方式传递参数(实参把值传给形参) int ...

  7. C语言多维数组做函数参数退化原因大剖析

    多维数组做函数参数退化原因 多维数组做函数参数退化原因大剖析 多维数组做函数参数退化原因大剖析 //证明一下多维数组的线性存储 //线性打印 void printfArray411(int *arra ...

  8. C语言中数组做函数参数的问题

    数组做函数参数,会退化成为一个指针变量.因此在进行数组参数传递的同时,需要传递一个数组长度的参数变量. 数组长度可以通过sizeof(arr)/siezof(arr[0])来得到.关于这个sizeof ...

  9. java 11:数组作为函数参数,数组做为函数返回值

    1 数组作为参数 我们可以将数组作为参数,传入到函数中,其实就像我们main函数中 public void main(String [] args){};就是用数组作为函数参数: 又如, [java] ...

  10. 二维数组作为函数参数

    #include<stdio.h> //#include<> //二位数组作为函数参数时,可以不指定第一个下标 void print_buf(int (*p)[3],int a ...

最新文章

  1. 算术运算的RTL代码规则总结
  2. CDH- 集群时间同步ntp问题解决
  3. PMCAFF微课堂 | 运营女神揭秘产品运营推广中的场景思维
  4. php data 算出差几天,出差天数一般怎么算。。。
  5. IOS 关于ipad iphone5s崩溃 解决
  6. 我需要用的Jupyter Notebook快捷键
  7. 石头剪刀布python编程_《python核心编程第二版》练习题——游戏:石头剪刀布
  8. Spring Boot (八)MyBatis + Docker + MongoDB 4.x
  9. 工信部:手机预装软件下月起须报备审核
  10. 写代码时发现......还是SpringBoot牛逼!
  11. python自定义异常_Python自定义异常
  12. 你的项目应该如何分层?
  13. PTA 数据结构题集
  14. 电信sdn虚拟服务器,数据中心SDN网络的构建及通信业务与光纤引入
  15. unity3d计算两点之间距离的方法
  16. 样本调试之 loadlibrary 报错1114
  17. YOLO v3源码详解
  18. 油猴插件安装以及好用的脚本推荐
  19. 海南安全员A证怎么考多选题库
  20. SMOTE-IPF:通过带滤波的重采样方法解决不平衡分类中的噪声和边界样本问题

热门文章

  1. [Win32]一个调试器的实现(五)调试符号
  2. 【ROS学习】(六)ROS多线程订阅消息
  3. mysql写偏斜_数据库隔离级别剖析
  4. 读书笔记-精准努力-说话直就是情商低
  5. 协调能力体现在哪些方面
  6. 仿迅雷播放器教程 -- 基于VLC的C++播放器 (4)
  7. 工厂模式建造小怪角色
  8. JavaScript中的ES5,ES6是什么意思?
  9. 如何使用 DAX 函数计算上年值
  10. 智能排班考勤系统原型