首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

7.3 C语言数组作为函数参数

01数组元素作函数实参 1、数组元素可以用作函数实参,不能用作形参。 2、在用数组元素作函数实参时,把实参值传给形参,是“值传递”方式。 3、数据传递方向是从实参传到形参,单向传递。...02 数组名作函数参数 1、除了可以用数组元素作为函数参数外,还可以用数组名作函数参数。...2、用数组元素作实参时,向形参变量传递数组元素值,而用数组名作函数实参时,向形参传递数组首元素地址。 3、用数组名作函数参数,应该在主调函数和被调函数分别定义数组。...4、实参数组与形参数组类型应一致,如不一致,结构出错。 5、形参数组可以不指定大小,在定义数组时在数组名后面跟一个指针变量,用来接收一个地址。...C语言 | 统计捐款人数及人均捐款数 更多案例可以go公众号:C语言入门到精通

2.6K2927

C 语言】结构体相关 函数 指针 数组

结构体概述 : 结构体是 多个 变量集合, 变量类型可以不同; -- 可进行操作 : 结构体可以进行 拷贝 赋值操作, 可以作为 函数参数 和 函数返回值; 1....花括号初始化结构体变量*/ c1.s1.name = "CJ"; c1.s1.age = 21; c1.s2.name = "KW"; c1.s2.age = 22; /*访问结构体变量...->name 分析 : 获取 结构体 name 字符串值(注意不是指针|地址); -- *p++->name 分析 : 先获取 name 字符串值, 再将p自增; 结构体函数示例 : /****...需求 : 实现一个统计 C 语言关键字出现次数; 代码 :  /********************************************************************..., 该指针指向数组查找到元素下标*/ while(getword(word, MAXWORD) !

2.9K20
您找到你想要的搜索结果了吗?
是的
没有找到

C语言数组作为函数参数-学习十九

数组元素作函数实参 数组元素就是变量,它与普通变量并无区别。因此它作为函数实参使用与普通变量是完全相同, 在发生函数调用时,把作为实参数组元素值传递给形参,实现单向值传送。...如果a数组元素大于b数组相应元素数目多于 b 数组中元素大于 a 数组相应元素数目(如:a[i]>b[i] 3次,b[i]>a[i] 5次,其中i每次为不同值),则认为a 数组小于 b...在用数组名作函数参数时,不是进行值传送,是把实参数组首地址赋子形参数组名, 而不是把实参数组每一个元素值都赋予形参数组各个元素。...用多维数组名作函数参数 多维数组元素与一维数组元素一样,可以看作一个变量,所以在调用函数时可以作为实参,进行值传递。...例如: int array[5][10] int array[][10] 求出3X4矩阵(二维数组)最大元素。

1.7K20

C语言数组作为函数参数「建议收藏」

大家好,又见面了,我是你们朋友全栈君。 一:数组元素作为函数实参 数组元素就是变量,与普通变量没有区别,将数组元素传送给形参,实现单向值传递。...int a[6] = {3,2,1,4,9,0}; int m = a[0]; for(int i = 1;i < 6; i ++){ m = max(m,a[i]); } printf("数组最大元素是...:%d",m); } 二:数组名作为函数实参 实质是地址传递,将数组首地址传给形参,形参和实参共用同一存储空间,形参变化就是实参变化。...i = 0; i < 10; i++){ printf("%d ",a[i]); } } 三:二维数组名作为函数参数 第一维大小可以不指定,第二维大小必须指定。...实参传送是二维数组首地址,使得二维数组a与b共用同一存储单元,即a[0][0]与b[0][0]共用同一存储单元,a[0][1]与b[0][1]共用同一存储单元。

1.5K10

详解C语言指针函数函数指针、函数指针数组「建议收藏」

大家好,又见面了,我是你们朋友全栈君。 在C语言中,指针是一个很重要但是又很容易弄错概念,也可以说指针就是C语言灵魂,所以说学好指针对于完全掌握C语言是一个必须过程。...而在指针,指针函数函数指针、指针函数数组函数指针数组、指向函数指针数组指针等等概念看着又绕又头疼。本问总结了一下以上一些概念以及用法,并给出例程深化理解。 1....函数指针数组 顾名思义,就是每个元素都是函数指针数组,直接在函数指针名后面加上数组符号[ ]即可。...C语言函数不可以定义为数组,只能通过函数指针来操作定义函数指针数组。 5....,而void(* )( )表示函数指针,两者结合起来就是指向函数指针数组指针。

1.3K20

数组长度计算_c语言计算数组长度函数

:strlen,求字符串有效长度 方法:strlen(字符数组名) //结果为字符数组有效字符长度,不包含末尾’ /0′ 注意: 当数组作为函数參数传递时,数组名代表数组首址,...“ sizeof(a)= “ << sizeof (a) << endl; Sum(a); } 运算结果为: sizeof(a)=40 sizeof(array)=4 分析: 当数组作为函数參数传递时...,数组名代表数组首址,即指针,而非数组内容。...假设传递整个数组,会导致栈溢出。 所以在主函数中使用sizeof计算出是准确数组长度。...而在调用函数,因为传递数组不再是数组本身,而是其地址,所以用sizeof计算出,实际上是数组地址长度,这时sizeof(array),实际上是sizeof(int)。

2.8K20

c语言 数组存放规则,C语言数组详解

void main() { static char c[]=”BASIC/ndBASE”; printf(“%s/n”,c); } printf(“%s/n”,c); 注意在本例printf函数...这是由于在C语言中规定,数组名就代表了该数组首地址。 整个数组是以首地址开头一块连续内存单元。如有字符数组char c[10],在内存可表示如图4.2。...在执行函数printf(“%s”,c) 时,按数组c找到首地址,然后逐个输出数组各个字符直到遇到字符串终止标志’/0’为止。...字符串常用函数语言提供了丰富字符串处理函数, 大致可分为字符串输入、输出、合并、修改、比较、转换、复制、搜索几类。 使用这些函数可大大减轻编程负担。...=”BASIC/ndBASE”; puts(c); 从程序可以看出puts函数可以使用转义字符, 因此输出结果成为两行。

6.1K30

c语言数组插入新数据

大家好,又见面了,我是你们朋友全栈君。...数组插入数据 在数组应用,我们有时会向数组插入一个数据,而且不打破原来排序规律,其实数组插入数据,就是数据比较和移动;如果想要弄懂这些方法最好拿笔比划以下,或者debug一下,了解其中思想...,光看理解不深; 方法一: 输入一个数据x,将数组数据与x逐一比较,如果大于x,记录下数据下标,然后此数据下标和其后数据下标都加一,相当于都向后挪一位,然后将x赋值给数组那个下标; 方法二...: 第二种方法是将要插入数据放在数组最后,然后和前面的数据逐一比较,如果x小于某元素a[i],则将a[i]后移一个位置,否则将x至于a[i+1]位置; 发布者:全栈程序员栈长,转载请注明出处:https

1.7K20

C语言系列】C语言数组

二、数组定义 格式: 类型 数组名[元素个数]; 举例:存储5个人年龄 Int agrs[5]; //在内存开辟4x5=20个字节存储空间 可以在定义数组同时对数组进行初始化: Int ages...Int x[]={1,2}; Char ca[5]={‘a’,‘A’,‘B’,‘C’,‘D’}; 数组名即代表数组地址,数组地址==数组名(ca)==数组首元素地址&ca[0] 在内存,内存从大到小进行寻址...模拟该数组内存存储细节如下: ? 注意:字符在内存是以对应ASCII值二进制形式存储,而非上表形式。 在这个例子数组x地址为它首元素地址0x08,数组ca地址为0x03。...0; } Array数组与ages数组地址一致,若以数组作为函数参数,这种传递方式是传址调用,传递是整个数组地址,修改形参数组元素值,就是修改实参值。...提示:数组作为一个函数参数时,如果函数体涉及到数组遍历等操作,通常把数组实际元素个数也作为参数传递给函数

28.5K61

C语言数组

C 语言支持数组数据结构,它可以存储一个固定大小相同类型元素顺序集合。数组是用来存储一系列数据,但它往往被认为是一系列相同类型变量。...数组特定元素可以通过索引访问。 所有的数组都是由连续内存位置组成。最低地址对应第一个元素,最高地址对应最后一个元素。 ?...声明数组C 要声明一个数组,需要指定元素类型和元素数量,如下所示: type arrayName [ arraySize ]; 这叫做一维数组。...初始化数组C ,您可以逐个初始化数组,也可以使用一个初始化语句,如下所示: double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0}; 大括号 { }...下面是一个为数组某个元素赋值实例: balance[4] = 50.0; 上述语句把数组第五个元素值赋为 50.0。

5K10

c语言_数组

数组 1、数组定义和使用 格式: 数据类型 数组名[元素个数] 元素个数,代表该数组有多少个相同数据类型变量 下标 用来表示数组某一个元素 例如 int arr[10]; arr[1]代表数组第二个元素...数组下标是从0开始数组元素个数-1 数组下标越界:超出了数组元素个数下标,如果操作越界数据会出现程序错误 1、乱码结果 2、报错 求出数组元素个数: int (size_t) unsigned...(数据类型)) 数组名+1(sizeof(数组名)) 练习:十只小猪称体重 定义一个数组 存储小猪体重 通过遍历找到最重小猪 找到数组数据最大值下标 根据下标打印数据 练习: 找到小猪第二重...scores【10】【3】 求出每名学生总成绩和平均成绩 求出班级语文 数学 英语平均成 语数外 【0】【0】 【0】【1】 【0】【2】 字符数组和字符串: 字符数组和字符串区别在于是否有字符串结束标志...中就是数字0 ​ printf("%s", arr); ​ //for (int i = 0; i < 10; i++) ​ //{ ​ // printf("%c", arr[i]); ​ //} ​

4.5K20

C语言——数组

a,数组下标 C语言中,数组下标是从0开始,如果有n个元素,则第一个元素下标为0,最后一个元素下标为n-1 ,下面举例: 对于:            int arr [5] = {1,2,3,4,5...}; 数组元素:           1   2   3  4   5  对应下标:           0   1   2   3  4   C语言中 [ ] 是“下标引用操作符” ,...比如:arr [5]; 就是访问下标为5元素;arr [0];就是访问下标为0元素(即第一个元素) b,输入与打印 当我们需要依次给数组输入数据时我们可以利用for循环和scanf函数,如: 输入:...C99变长数组 一般来说,数组大小指定只能使用常量,常量表达式,或直接初始化而省略大小: int arr1[10]; int arr2[3+5]; int arr3[] = {1,2,3};...(但是在vs是不支持变长数组

11710

C语言-数组

数组介绍 C语言数组是一个同类型数据集合,主要用来存储一堆同类型数据。 程序里怎么区分是数组?[ ] 这个括号是数组专用符号. 定义数组、 访问数组数据都会用到。...访问数组成员时候:下标是从0开始。int data[10]; 下标 (0~9) 2. 数组只是支持在定义时候进行整体赋值。 3. 数组定义时候,[]里只能填常量。...数组在定义之后就无法更改大小。 4. 数组空间是连续—内存。 5. 数组名称就是数组空间首地址。 6. 数组初始化时,如果没有赋值,那么数组空间里数据是未知---局部变量。 7....数组定义语法与注意事项 1. 数组名称是数组元素首地址。(数组名字就是地址) 2. 数组只能在初始化时候进行整体赋值。比如: int a[100]={10,20,30}; 3....数组定义时候(C89), 数组下标里大小只能填常量。

4K10

C语言数组——字符数组

); return 0; } 运行结果: 在上面的代码定义了不同类型字符数组来存放相同字符,可以看出,它们占用内存大小相差很大,long型字符数组所占用内存大小是char型数组占用内存大小...看看上面代码定义arr数组,其数组长度为20,而初始化字符元素个数为12,初始化字符元素个数小于数组长度,编译器在编译过程中将后面没有初始化数组元素赋值为‘\0’,这也正是打印输出中含有空字符原因...='\0'; i++) { printf("%c", arr[i]); } return 0; } 运行结果: 这时输出结果中就不含有任何空字符了,因为巧妙地使用了字符数组...= '\0'; i++) { printf("%c", arr[i]); } return 0; } 运行结果: 在对一维字符数组进行定义和初始化过程,可以不指定其长度。...‘\0’,所以得到字符数组长度是字符串常量长度加1;而采用字符常量列表方式对字符数组进行初始化就不会在最后添加一个结束符,所以利用这种方式定义字符数组长度就是字符常量列表字符个数。

7.3K20

C语言数组——字符数组

C语言目录 C/C++学习资源(百度云盘链接) 计算机二级资料(过级专用) C语言学习路线(从入门到实战) 编写C语言程序7个步骤和编程机制 C语言基础-第一个C程序 C语言基础-简单程序分析...VS2019编写简单C程序示例 简单示例,VS2019调试C语言程序 C语言基础-基本算法 C语言基础-数据类型 C语言输入输出函数 C语言流程控制语句 C语言数组——一维数组...C语言数组——二维数组 前面两篇文章分别介绍了一维数组和二维数组,今天我们一起看看字符数组 字符数组 字符数组顾名思义就是数组元素类型为字符型数组。...,因为巧妙地使用了字符数组‘\0’标志。...如果您觉得本篇文章对您有帮助,请转发给更多的人 【C语言中文社区】是一个C语言视频教程、学习笔记、电子书、计算机二级资料等专注于C语言编程学习者干货知识分享平台,精选深度文章,分享优秀干货类、技能类学习资源

6.1K40
领券