提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、形如:数组名[个数]
  • 二、形如:*数组名
    • 1.引入库
  • 总结

前言

C语言中,一维数组作为参数的几种传递方式


提示:以下是本篇文章正文内容,下面案例可供参考

一、形如:数组名[个数]

代码如下(示例):

#include <stdio.h>
#include <stdlib.h>
void print_array_size(int a[])
{int n;n = sizeof(a) / sizeof(a[0]);printf("print array n = %d ", n);printf("\n");
}
void print_array_size1(int a[5])
{int n;n = sizeof(a) / sizeof(a[0]);printf("print array2 n = %d ", n);printf("\n");
}
int main(void)
{int a[] = { 5, 6, 8, 1, 5, 3, 9 };int i = 0, j = 0, n;n = sizeof(a) / sizeof(a[0]);//n=7printf("n = %d\n", n);print_array_size(a);//n=1print_array_size1(a);//n=1system("pause");return 1;
}

当数组作为函数参数时时,数组形参退化为指针,其中[个数]不写或者任意大于0的数,结果都一样

二、形如:*数组名

1.引入库

代码如下(示例):

#include <stdio.h>
#include <stdlib.h>
void print_array_size(int *a)
{int n;n = sizeof(a) / sizeof(a[0]);printf("print array n = %d ", n);printf("\n");
}
int main(void)
{int a[] = { 5, 6, 8, 1, 5, 3, 9 };int i = 0, j = 0, n;n = sizeof(a) / sizeof(a[0]);//n=7printf("n = %d\n", n);print_array_size(a);//n=1system("pause");return 1;
}

总结

不管是数组还是指针方式作为函数的行参,实质上都是作为指针传递,为什么都要用指针呢?高效!如果是用数组传递的话,那就需要copy数组对应大小的数据,而用指针传递时,只需要copy一个指针就可以了。

C语言中数组作为函数的形参相关推荐

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

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

  2. 图解C语言中数组指针、指针数组、函数指针、函数指针数组、指向函数指针数组的指针

    关于C语言中数组指针.函数指针.指针数组.函数指针数组.指向函数指针数组的指针一直比较绕,稍微整理一下. 到底是指针还是数组? 其实到底是指针还是数组还是看变量名与[]先结合还是*先结合.我们知道C语 ...

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

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

  4. C语言中的回调函数(Callback Function)

    C语言中的回调函数(Callback Function) 1 定义和使用场合 回调函数是指 使用者自己定义一个函数,实现这个函数的程序内容,然后把这个函数(入口地址)作为参数传入别人(或系统)的函数中 ...

  5. 从编译器角度分析C语言中数组名和指针的区别

    从编译器角度分析C语言中数组名和指针的区别 数组名和指针是两个往往很容易让人们混淆的概念,很多人以为数组名就是一个指针,也有很多人知道数组名不同于指针但是仅知道数组名的值不能像指针一样改变. 例如你可 ...

  6. 如何确定C语言中数组的大小?

    如何确定C语言中数组的大小? 也就是说,数组可以容纳多少个元素? #1楼 如果您要处理未作为参数接收的数组,则sizeof方法是正确的方法. 作为参数发送给函数的数组被视为指针,因此sizeof将返回 ...

  7. C语言中数组的排序算法详解——选择法、冒泡法、交换法、插入法、折半法

    选择法排序 选择法排序是指:如果要把一个数组从小到大排列,那么就从该数组中依次选择最小的数字来排序.从第一个数字开始,将第一个数字与数组中剩下数字中最小的那一个交换位置,然后将第二个数字与剩下数字中最 ...

  8. 怎样设置一个函数C语言,C语言中怎样编写一个函数 如何在C语言中定义一个函数?...

    如何在C语言中定义一个函数?小编很想在你面前流泪最后却还是选择装作打个哈欠 为什么小编怎么定义函数都不正确呢? 总是说小编 表达语法错误在main函数中 小编们可以在头文件与main函数之间定义,并编 ...

  9. c语言中数组的概念及作用,C语言数组的定义及其使用方法

    什么是数组? 在我们学习数组前先让我们介绍一下c语言中数组是什么?数组就是一个个元素按照一定顺序排列的集合.它将数据从最低的内存地址保存到最高的内存地址. 声明一个数组 c语言规定了声明数组的格式: ...

最新文章

  1. 全球IP地址数周内用完,或现无法上网情况
  2. 企业架构(五)——联邦企业架构(FEA)实施指南
  3. STM32 进入Stop模式后电流还是很大怎么办?
  4. C# JSON格式数据用法
  5. linux下log日志乱码_如何用 Linux 技巧大大提高工作效率?
  6. Junit4中Test Suite的用法
  7. 内外网映射 html缓存问题_浅谈内存映射
  8. 【STL】算法 — partial_sort
  9. HTTP请求报文分析
  10. EMNLP 2018 | 为什么使用自注意力机制?
  11. 中国省份/城市OSM地图数据
  12. 虚拟机桥接模式联网设置
  13. python安装pandas失败_详解pandas安装若干异常及解决方案总结
  14. python超简易入门笔记版(其二)
  15. linux系统运维面试2000多题
  16. 5.2 中心极限定理
  17. [病毒分析]熊猫烧香(下)核心函数部分分析
  18. 用友t3恢复账套显示服务器,T3恢复账套时提示这个错误,求解答,谢谢
  19. 满二叉树与完全二叉树的区别
  20. java 地图四色着色算法_继陈景润之后周立敬攻破世界三大数学难题之一:地图四色难题...

热门文章

  1. Python入门学习难吗
  2. 群晖NAS用迅雷远程下载Xware 1.xxx的进程监视和掉线自动重启
  3. vb script html,VB script 入门
  4. “孝”是稍纵即逝的眷恋,“孝”是无法重视的幸福
  5. Error: Cannot find module ‘D:\@vue\cli-service\bin\vue-cli-service.js‘的解决方案(vue项目)
  6. 第100001个素数是什么?_蓝桥杯
  7. 一阶rc matlab,matlab – 一阶RC滤波器的时间离散实现
  8. 深度学习课程大纲_赠书 | 哈工大研究生课程的高分讲义,深度学习的the book
  9. 《超级符号原理》—超级符号
  10. 传统门店社群营销现状是什么?