一、答案

函数参数使用数组引用。

二、栗子

#include <iostream>void print_1(int data[4])
{std::cout << sizeof(data) << std::endl;for (int i = 0; i < 4; i++)std::cout << data[i] << " ";std::cout << std::endl;
}void print_2(int (&data)[4])
{std::cout << sizeof(data) << std::endl;for (int i = 0; i < 4; i++)std::cout << data[i] << " ";std::cout << std::endl;
}int main()
{int myarray[] = {1, 2, 3, 4};print_1(myarray);  print_2(myarray); return 0;
}

结果:

8
1 2 3 4
16
1 2 3 4 

(SAW:Game Over!)

C/Cpp / 参数传递时如何防止数组退化为指针相关推荐

  1. 指针进阶(指针与数组传参、数组指针与指针数组、函数指针数组、回调函数的辨析)

    指针 指针作为C语言中极具代表性的特征之一,也是C语言学习中的一大难点. 简单来说,指针我们需了解的最基础的即: 指针是一个用来存放地址的变量,地址唯一标识一块内存空间. 指针的大小是固定的4/8个字 ...

  2. 【C 语言】二级指针内存模型 ( 指针数组 | 二维数组 | 自定义二级指针 | 将 一、二 模型数据拷贝到 三 模型中 并 排序 )

    文章目录 一.指针数组 和 二维数组 数据 拷贝到 自定义二级指针 中 1.函数形参 设计规则 2.三种内存模型 对应 函数形参 指针退化规则 二.完整代码示例 一.指针数组 和 二维数组 数据 拷贝 ...

  3. 【C 语言】指针 与 数组 ( 指针 | 数组 | 指针运算 | 数组访问方式 | 字符串 | 指针数组 | 数组指针 | 多维数组 | 多维指针 | 数组参数 | 函数指针 | 复杂指针解读)

    相关文章链接 : 1.[嵌入式开发]C语言 指针数组 多维数组 2.[嵌入式开发]C语言 命令行参数 函数指针 gdb调试 3.[嵌入式开发]C语言 结构体相关 的 函数 指针 数组 4.[嵌入式开发 ...

  4. 《C++ Primer 第五版》(第6.3~6.7节)——返回指向数组/函数的指针,函数重载,默认形参、inline函数和constexpr函数

    1.返回指向数组/函数的指针 顾名思义,就是函数返回值为指向数组/函数的指针. 数组的性质:不能被拷贝,函数也不能返回数组.但可以返回数组指针/引用,声明一个返回数组指针的函数,有四种方式,一种是直接 ...

  5. 数组作为函数的参数传参时,数组名会退化为指针

    1.数组作为函数的参数传参时,数组名会退化为指针 数组作为函数的参数传参时,数组名会退化为指针,数值传参时,需要把数值的长度一起传过去,另外,sizeof()运算符包含字符串的哨兵'/0',而strl ...

  6. 【C语言进阶深度学习记录】三十一 数组作为函数参数时退化为指针

    之前的学习数组的文章中,已经知道一维数组作为函数参数的时候,最终会被编译器编译为指针.今天来看看二维数组的情形 文章目录 1 为什么C语言中的数组作为函数参数会退化为指针? 2 二维数组作为函数参数如 ...

  7. 【C 语言】数组作为参数退化为指针问题 ( 问题描述 | 从编译器角度分析该问题 | 出于提高 C 语言执行效率角度考虑 | 数组作为参数的推荐方案 )

    文章目录 一.问题描述 二.从编译器角度分析该问题 三.数组作为参数的推荐方案 一.问题描述 将 数组 作为 函数参数 , 传递时会 退化为指针 ; 数组的首地址 , 变为指针地址 , 函数中无法判定 ...

  8. 【C 语言】数组 ( 多维数组做函数形参退化为指针过程 | int array[2][3] -> int array[][3] -> int (*array)[3] )

    文章目录 一.多维数组做函数形参退化为指针过程 1.使用 int array[2][3] 作函数参数 2.使用 int array[][3] 作函数参数 3.使用 int (*array)[3] 作函 ...

  9. Java中,String类型和包装类型作为参数传递时,是属于值传递还是引用传递呢?...

    <Java中,String类型和包装类型作为参数传递时,是属于值传递还是引用传递呢?> <Java中的值传递和引用传递> 原理知识: 如果参数类型是原始类型,那么传过来的就是这 ...

最新文章

  1. Playmaker Input篇教程之PlayMaker菜单概述
  2. stm32中使用#pragma pack(非常有用的字节对齐用法说明)
  3. python 超时重试方法
  4. 审计文件的作用以及记录的内容,审计日志的记录,以及审计日志包括的内容
  5. 中石油训练赛 - Check List(线段树维护偏序问题)
  6. 16.04编译android 7.0,ubuntu16.04 编译Android5.1报错
  7. LoRa是怎样实现定位的
  8. 【转】Snackbar和Toast的花式使用,这一篇就够了
  9. C++:传递数组给函数
  10. 数据科学入门与实战:玩转pandas之一
  11. 1002 C语言输入解决方案
  12. 百度系无人车创业公司领骏科技完成新一轮融资
  13. linux把程序添加到全局环境变量
  14. Spark2.1.0模型设计与基本架构(下)
  15. 海康DS-2DY5223IW-DM
  16. SX1308锂电池升压1.5—3.7升5v1.5A 专为太阳能灯开发的DC/DC直流升压IC
  17. 人机交互新突破:百度发布主动多模态交互技术
  18. php制作搜索框_搜索功能(search.php)模板制作 - WordPress模板开发
  19. go内存分析工具介绍--pprof
  20. 基于51单片机的控制四线步进电机仿真设计

热门文章

  1. linux 定时执行shell脚本 定时任务
  2. 监控软件nagios之安装
  3. asp.net页面出错时的处理方法
  4. php中var_dump是什么意思,php中的var_dump()方法的詳細說明
  5. python数组随机分组_Python实用黑科技——以某个字段进行分组
  6. Fiddler抓包工具详解(五)(IOS、安卓抓包+fildder插件)
  7. 服务端第四次课程:MVC,控制器,视图渲染
  8. 使用three.js实现炫酷的酸性风格3D页面
  9. deepin v20.4设置全局搜索的快捷键
  10. wsl设置c盘自动挂载到wsl中的/c/目录下