C语言数组名作为函数参数
数组名作为函数参数传递时,会将数组整个传递给目标函数
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语言数组名作为函数参数相关推荐
- c语言数组名做函数的参数传递,【C 语言】数组元素和数组名作为函数参数
数组用作函数参数有两种形式: 一种是把数组元素(下标变量)作为实参使用: 一种是把数组名作为函数的形参和实参使用. 1.数组元素(下标变量)作为实参使用 数组元素作为函数实参使用与普通变量是完全相同的 ...
- 21 11 7 C语言学习总结(数组越界,数组名作为函数参数,数组名)
一 数组越界 数组的下标是有范围限制的 数组的下标规定是从0开始的,如果数组有n个元素,最后一个元素的下标就是n-1 所以数组的下标如果小于0,或者大于n-1,就是数组越界访问了,超出了数组合法空间的 ...
- 函数:使用数组名作为函数参数进行操作
编写一个程序,它使用下列函数: Fill_array()将一个double数组的名称和长度作为参数.它提示用户输入double值,并将这些值存储到数组中.当数组被填满或用户输入了非数字时,输入将停止, ...
- C++之指针探究(十二):指针、下标、数组及其作函数参数
指针使用下标时,可以理解为数组. 例如: char ∗\ast∗p = "abcdef"; 此时p[2]值为'c': 而p表示字符串"abcdef" ...
- 数组元素作为函数参数
数组元素作为函数参数 数组元素作为函数参数 数组元素作函数实参 数组名作为函数参数 数组元素作为函数参数 数组可以作为函数的参数使用,进行数据传送.数组用作函数参数有两种形式,一种是把数组元素(下标变 ...
- 数组名作为函数的参数 与数组作为函数参数的区别
数组元素作为函数的实参时,像形参变量传递的是数组元素的值,而用数组名作为函数的实参时,向形参(数组名或指针变量)传递的是数组首元素地址.参考如下代码可以更好的理解. 1数组名作为函数的参数 //1有一 ...
- sort函数排序字母c语言,c语言数组用sort函数排序?
c语言运用sort 排序函数,需要的头文件是什么? sort不属于C语言的标准函数,所以也没有相应的头文件,但是可以自定义. sort 函数为将整型数组从小到大排序. voidsort(int*a,i ...
- go语言结构体作为函数参数,采用的是值传递
经过验证,go语言结构体作为函数参数,采用的是值传递.所以对于大型结构体传参,考虑到值传递的性能损耗,最好能采用指针传递. 验证代码: package mainimport ("fmt&qu ...
- C语言基础之判断字符类型、字符串的数值转换、串长比较、数组指针、函数参数
不是什么文档,也不是教程,只是监督自己打卡学习C语言,记录的只是自己一些小笔记.如有错处,十分感谢您指出!!! 一.判断字符类型 #include<ctype.h>,isdigit()- ...
最新文章
- ★教师工资为什么这么低?/整理
- html图片显示和夫宽一样,功夫:HTML和CSS?
- jmeter---linux安装运行
- 四、极大似然参数估计
- A+B Problem(洛谷-P1001)
- 力扣剑指 Offer 17. 打印从1到最大的n位数
- zImage内核镜像解压过程详解
- 前后端分离项目token怎么验证_前后端分离,获取token,验证登陆是否失效
- 运行时的相互联系(PE、Windows 加载器、应用程序域、程序集清单、元数据、类型、对象、线程栈、托管堆)...
- 虎牙tv是用php写的吗,huya虎牙php_麦麦同学
- matlab 四叉树表达,已知二值图像,如题图8.4所示。 (1)对该图像使用四叉树进行划分; (2)用四叉树表达该图像。 - 试题答案网问答...
- 软件工程:可行性分析,需求分析思维导图
- C语言 生成随机数 srand用法 伪随机函数rand srand需不需要重新播种问题 srand该不该放在循环里
- 在vscode中配置和使用sass
- JavaScript-JS判断一个整数是偶数还是奇数
- iSCSI initiator
- [Zookeeper-3.6.2源码解析系列]-14-Zookeeper使用到的Reactor网络模型原理分析
- 可以一键生成crud的php框架,关于Laravel+vue+admin一键生成CRUD代码
- Spring事务开启方法 传播特性 隔离界别
- 51单片机中断与计时器
热门文章
- Android变量longpress,Android:在自定义WebView中从onLongPress打开ContextMenu
- oracle对象管理及使用实验报告,oracle对象管理常用操作(objects management)
- 十二月份找工作好找吗_学习完3D游戏建模好找工作吗
- Unsupported major.minor version 51.0 jdk版本错误解决方案 eclipse版
- React-Native 按钮点击几种效果进行对比
- 基于JAVA+SpringMVC+MYSQL的网上人才招聘系统
- 基于JAVA+SpringMVC+Mybatis+MYSQL的电影购票系统
- auth java_java – 使用auth的httpget请求
- 原生 Ajax 封装 和 Axios 二次 封装
- MyBatis Invalid bound statement (not found)问题 -- 记一次与空气的斗智斗勇