数组名作为函数参数传递时,会将数组整个传递给目标函数

int main(){int import(),returnNum;//函数声明//int import(int a[10])亦可int num[10]={1,2,3,4,5};returnNum= import(num);//函数调用,并把返回值赋值给returnNumprintf("%d\n",returnNum );return 0;
}//函数类型不指定,则默认为int型
int import(int a[10]){for (int i = 0; i < 10; ++i){printf("%d\n",a[i] );}return 999;
}
  • 数组名作为函数参数调用,在主调函数与被调用函数中,都应重新定义一次数组
  • 实参数组与形参数组类型应一致
  • 在被调用函数中指定了数组大小,实际上不起任何作用,C语言编译系统并不检查形参数组大小,只是将实参数组的首元素的地址传给形参数组名。形参数组名获得了实参数组的首元素的地址,数组名代表数组的首元素的地址,形参数组首元素和实参数组首元素具有同一地址,它们共占同一存储单元
  • 在内存中,数组是按行存放的

多维数组名作为函数参数,如一维数组类似

int main(){int apologize();int a[2][4]={{0,0,0,0},{1,2,3,4}};apologize(a);
}int apologize(int a[][4]){printf("%d\n",a[1][0]);//1return 999;
}

当数组名作为函数参数调用时所进行的传递,是地址的传递,类似于指针

#include <stdio.h>int main()
{int compare(int a[2][3]);int str[2][3]={{0,1,2},{3,4,5}};compare(str);return 0;
}int compare(int a[][3]){printf("%d\n",a[1][1] );//输出4
}
  • 需注意一点的是,数组名为常量,不可进行赋值改变地址,指针类型变量,可以不断赋值改变所指向地址常量

C语言数组名作为函数参数相关推荐

  1. c语言数组名做函数的参数传递,【C 语言】数组元素和数组名作为函数参数

    数组用作函数参数有两种形式: 一种是把数组元素(下标变量)作为实参使用: 一种是把数组名作为函数的形参和实参使用. 1.数组元素(下标变量)作为实参使用 数组元素作为函数实参使用与普通变量是完全相同的 ...

  2. 21 11 7 C语言学习总结(数组越界,数组名作为函数参数,数组名)

    一 数组越界 数组的下标是有范围限制的 数组的下标规定是从0开始的,如果数组有n个元素,最后一个元素的下标就是n-1 所以数组的下标如果小于0,或者大于n-1,就是数组越界访问了,超出了数组合法空间的 ...

  3. 函数:使用数组名作为函数参数进行操作

    编写一个程序,它使用下列函数: Fill_array()将一个double数组的名称和长度作为参数.它提示用户输入double值,并将这些值存储到数组中.当数组被填满或用户输入了非数字时,输入将停止, ...

  4. C++之指针探究(十二):指针、下标、数组及其作函数参数

    指针使用下标时,可以理解为数组. 例如:   char ∗\ast∗p = "abcdef";   此时p[2]值为'c':   而p表示字符串"abcdef" ...

  5. 数组元素作为函数参数

    数组元素作为函数参数 数组元素作为函数参数 数组元素作函数实参 数组名作为函数参数 数组元素作为函数参数 数组可以作为函数的参数使用,进行数据传送.数组用作函数参数有两种形式,一种是把数组元素(下标变 ...

  6. 数组名作为函数的参数 与数组作为函数参数的区别

    数组元素作为函数的实参时,像形参变量传递的是数组元素的值,而用数组名作为函数的实参时,向形参(数组名或指针变量)传递的是数组首元素地址.参考如下代码可以更好的理解. 1数组名作为函数的参数 //1有一 ...

  7. sort函数排序字母c语言,c语言数组用sort函数排序?

    c语言运用sort 排序函数,需要的头文件是什么? sort不属于C语言的标准函数,所以也没有相应的头文件,但是可以自定义. sort 函数为将整型数组从小到大排序. voidsort(int*a,i ...

  8. go语言结构体作为函数参数,采用的是值传递

    经过验证,go语言结构体作为函数参数,采用的是值传递.所以对于大型结构体传参,考虑到值传递的性能损耗,最好能采用指针传递. 验证代码: package mainimport ("fmt&qu ...

  9. C语言基础之判断字符类型、字符串的数值转换、串长比较、数组指针、函数参数

    不是什么文档,也不是教程,只是监督自己打卡学习C语言,记录的只是自己一些小笔记.如有错处,十分感谢您指出!!! 一.判断字符类型 #include<ctype.h>,isdigit()- ...

最新文章

  1. ★教师工资为什么这么低?/整理
  2. html图片显示和夫宽一样,功夫:HTML和CSS?
  3. jmeter---linux安装运行
  4. 四、极大似然参数估计
  5. A+B Problem(洛谷-P1001)
  6. 力扣剑指 Offer 17. 打印从1到最大的n位数
  7. zImage内核镜像解压过程详解
  8. 前后端分离项目token怎么验证_前后端分离,获取token,验证登陆是否失效
  9. 运行时的相互联系(PE、Windows 加载器、应用程序域、程序集清单、元数据、类型、对象、线程栈、托管堆)...
  10. 虎牙tv是用php写的吗,huya虎牙php_麦麦同学
  11. matlab 四叉树表达,已知二值图像,如题图8.4所示。 (1)对该图像使用四叉树进行划分; (2)用四叉树表达该图像。 - 试题答案网问答...
  12. 软件工程:可行性分析,需求分析思维导图
  13. C语言 生成随机数 srand用法 伪随机函数rand srand需不需要重新播种问题 srand该不该放在循环里
  14. 在vscode中配置和使用sass
  15. JavaScript-JS判断一个整数是偶数还是奇数
  16. iSCSI initiator
  17. [Zookeeper-3.6.2源码解析系列]-14-Zookeeper使用到的Reactor网络模型原理分析
  18. 可以一键生成crud的php框架,关于Laravel+vue+admin一键生成CRUD代码
  19. Spring事务开启方法 传播特性 隔离界别
  20. 51单片机中断与计时器

热门文章

  1. Android变量longpress,Android:在自定义WebView中从onLongPress打开ContextMenu
  2. oracle对象管理及使用实验报告,oracle对象管理常用操作(objects management)
  3. 十二月份找工作好找吗_学习完3D游戏建模好找工作吗
  4. Unsupported major.minor version 51.0 jdk版本错误解决方案 eclipse版
  5. React-Native 按钮点击几种效果进行对比
  6. 基于JAVA+SpringMVC+MYSQL的网上人才招聘系统
  7. 基于JAVA+SpringMVC+Mybatis+MYSQL的电影购票系统
  8. auth java_java – 使用auth的httpget请求
  9. 原生 Ajax 封装 和 Axios 二次 封装
  10. MyBatis Invalid bound statement (not found)问题 -- 记一次与空气的斗智斗勇