当用数组名作形参时,形参数组改变可使实参数组随之改变 . 这句话哪里错了 求详细解答
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当用数组名作形参时,形参数组改变可使实参数组随之改变 . 这句话哪里错了 求详细解答相关的知识,希望对你有一定的参考价值。
在下觉得这是“文字游戏”!用数组名作形参,传进去的实参必然是数组名或指向该数组名的指针,在子函数中改变的数组就是以传过去的那个数组名为首址的同一个数组,子函数中改变的数组也就是这同一个数组,还能分什么形参数组和实参数组吗?如果说这句话有错的话,那就是根本就没有“形参数组”和“实参数组”之分,本来就只有一个数组,只是主函数可能是用数组名操作的,而子函数一般是用指针操作的。即便是你把形参写成n[]而不写成*n,n照样是指针,可以在子函数中进行n++、n--操作…… 参考技术A 一、数组名定义一个数组,其数组名是一个静态的地址,可表示这个数组的首地址。静态的意思就是不能改变。
二、参数传递
函数参数传递是传值的,意思是,将实参的数值传递到子函数。当用数组名作形参时,子函数收到的是主函数中的数组的首地址值!
三、形参数组与实参数组??
有这样叫的吗?感觉怪怪的
四、综上:
通过形参 可在子函数中改变形参所指向的数组中的内容,而实参对应的数组中的内容会随之改变。因为,这是通过地址对地址中的内容进行更改。追问
那这句话到底有没有错
追答这句话的对错只有看答案才知道。理解以上概念就好了,不会影响程序设计者编程。
如果让我答,我就答:错,理由是“没有形参数组和实参数组这种叫法",当然,其它内容也描述不严谨,就不列举了
实验四
part1:
1. 类型相同的一组数据构成的集合
2. 这一组数据在内存中连续存放
part2:
1.定义一维数组a,须指明它包含的元素个数和元素类型
2.通过数组名和下标的形式引入数组元素
3.当对所有数组元素初始化的时候,才可以省略数组大小
4.c语言支持在对数组初始化时,只初始化一部分元素。这种情形下,剩余没有被初始化的元素值,系统自动设为0
part3:
1.函数名作为参数时,实参和形参的书写形式不同
2.函数声明和函数定义中,函数名init后面括号里出现的是形式参数,数组名后面要加[ ]。即:void init(int a[], int n, int value);
3.函数调用中,函数名init后面括号里出现的是实际参数,直接写数组名。即:init(b, N, -1);
part4:
part5:
以上是关于当用数组名作形参时,形参数组改变可使实参数组随之改变 . 这句话哪里错了 求详细解答的主要内容,如果未能解决你的问题,请参考以下文章