数组做函数参数,会退化成为一个指针变量。因此在进行数组参数传递的同时,需要传递一个数组长度的参数变量。

数组长度可以通过sizeof(arr)/siezof(arr[0])来得到。关于这个sizeof操作符,简单的理解就是求得指针指向的内存块的大小。

当数组作为实参进行传递的时候,被调用函数中的形参的数据类型和实参所传递过来的数据类型是不一样。

也就是说,写在形参位置上的数组,表面上是数组,但是编译器会将它当作是一个指针,只会分配4个字节的内存。

形参写在括号内,和写在函数中第一行是等价的,只是第一种提供了对外的接口而已。

转载于:https://www.cnblogs.com/andyniu/p/7629377.html

C语言中数组做函数参数的问题相关推荐

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

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

  2. C语言多维数组做函数参数会退化,数组做函数参数退化问题

    一.数组做函数参数退化问题 数组做函数参数时,会退化为指针. 1.把数组的内存首地址和数组的有效长度传入函数. 2.实参数组和函数参数数组的数据类型不一样.形参中的数组,编译器会把它当做一个指针处理, ...

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

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

  4. 6.指针数组做函数参数

    一维数组名也是一个地址,即指针,只不过数组名是一个常量指针,常量指针即不能修改该指针的值!所以看字符数组的赋值与字符指针的赋值就明白了! void main() {int a[5] = { 0,1,2 ...

  5. C++二维数组做函数参数

    C++二维数组做函数参数 二维数组做函数参数的形式主要有: /对于一个m行n列int元素的二维数组 //函数f的形参形式 f(int daytab[m][n]) {...}//以下两种可以忽略行数 f ...

  6. vector做函数参数和普通数组做函数参数有什么区别

    结论: 1,vector做函数参数,当vector参数做输出(vector数组需要在函数中被改变)的时候,需要传入vector的引用. 2,vector做函数参数,当vector参数做输入参数(只使用 ...

  7. c语言以数组作为函数参数,C语言将数组作为函数参数

    一个函数的形参是普通的局部变量.当发生函数调用时,程序创建这些形参,然后用对应的实参来初始化这些形参.形参的作用域就是函数块.函数内可以改变形参的值,而不会影响调用上下文中实参的值. 如果需要将一个数 ...

  8. C++中数组作为函数参数的注意问题

    C++中数组作为函数参数的注意问题 1 问题引入 从<剑指Offer>上的相关问题,下面的输出是什么? #include<iostream> using namespace s ...

  9. C语言中数组作为函数的形参

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.形如:数组名[个数] 二.形如:*数组名 1.引入库 总结 前言 C语言中,一维数组作为参数的几种传递方式 提示: ...

最新文章

  1. beego 获取字符串中的数据_MySQL中获取季度、年度等数据
  2. dedecms php5.4 无法退出后台,解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法...
  3. 在R.java中新建自定义的新类
  4. 游戏社交崛起!四缺一,开黑吗?
  5. oracle extract()截取时间值函数
  6. c语言 文件序列化,Obj-C中的NSDate 、文件读写、序列化和反序列化
  7. php中ignore_user_abort函数的用法
  8. 微信改号?我用 Python 发现了六大隐藏秘密......
  9. 进程和线程不属于标准c语言,经典C语言面试题6:进程与线程的关系和区别
  10. prisma graphql 工具基本使用
  11. 小黑小波比.Ubuntu14.04安装ffmpeg以及使用ffmpeg
  12. linux备份根目录与还原脚本,Shell脚本备份和还原MBR(主引导记录)
  13. NFR24C0L中文使用手册、stm32硬件SPI与模拟SPI比较:
  14. 01.网络工程师常识
  15. VBScript教程之一(Hello VBScriopt)
  16. ISBN(国际标准书号)的校验
  17. “PE文件格式”1.9版 完整译文(附注释)
  18. Hadoop/Spark集群搭建图文全攻略
  19. 私有云服务器搭建教程(保姆级)——台式电脑+ubuntu+docker+nextcloud+mysql+花生壳内网穿透
  20. Unity 阴影频闪的问题

热门文章

  1. 服务中心Eureka
  2. servlet容器_SpringBoot是否内置了Servlet容器?
  3. python 字符串转日期_我总结的130页Python与机器学习之路V1.2.pdf,都是干货!
  4. js箭头函数和普通函数区别
  5. linux接口 头文件,第一种:1、添加关键头文件:#include linux/of_gpio.h#include linux/gpio.h...
  6. openfire消息通知推送_微信小游戏内测「订阅消息」能力,这是召回用户的「大杀器」吗?...
  7. java比较equlse_java基础知识要点
  8. c++从字符串中提取数字求和_【函数应用】单元格文本内提取数字并求和
  9. 【渝粤题库】陕西师范大学180208 产品管理 作业(专升本)
  10. 【物联网工厂大揭秘】电路板、数传模块 是怎么生产制造出来的?