当用数组名作形参时,形参数组改变可使实参数组随之改变 . 这句话哪里错了 求详细解答

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当用数组名作形参时,形参数组改变可使实参数组随之改变 . 这句话哪里错了 求详细解答相关的知识,希望对你有一定的参考价值。

在下觉得这是“文字游戏”!用数组名作形参,传进去的实参必然是数组名或指向该数组名的指针,在子函数中改变的数组就是以传过去的那个数组名为首址的同一个数组,子函数中改变的数组也就是这同一个数组,还能分什么形参数组和实参数组吗?如果说这句话有错的话,那就是根本就没有“形参数组”和“实参数组”之分,本来就只有一个数组,只是主函数可能是用数组名操作的,而子函数一般是用指针操作的。即便是你把形参写成n[]而不写成*n,n照样是指针,可以在子函数中进行n++、n--操作…… 参考技术A 一、数组名

定义一个数组,其数组名是一个静态的地址,可表示这个数组的首地址。静态的意思就是不能改变。
二、参数传递
函数参数传递是传值的,意思是,将实参的数值传递到子函数。当用数组名作形参时,子函数收到的是主函数中的数组的首地址值!
三、形参数组与实参数组??
有这样叫的吗?感觉怪怪的
四、综上:
通过形参 可在子函数中改变形参所指向的数组中的内容,而实参对应的数组中的内容会随之改变。因为,这是通过地址对地址中的内容进行更改。追问

那这句话到底有没有错

追答

这句话的对错只有看答案才知道。理解以上概念就好了,不会影响程序设计者编程。
如果让我答,我就答:错,理由是“没有形参数组和实参数组这种叫法",当然,其它内容也描述不严谨,就不列举了

本回答被提问者和网友采纳
参考技术B 这句话没有错,因为这里涉及到指针的操作,你要了解数组和指针的区别,并且了解数组名和数组参数的关系,希望对你有帮助!

实验四

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:

技术图片技术图片

技术图片技术图片

以上是关于当用数组名作形参时,形参数组改变可使实参数组随之改变 . 这句话哪里错了 求详细解答的主要内容,如果未能解决你的问题,请参考以下文章

数组名作函数参数时,实参与形参变量之间的数据传递是?

C语言中,数组名作为函数参数,属于啥传递,为啥?

【C 语言】数组元素和数组名作为函数参数

20180513 实参 形参 数组

数组作为形参的使用

能不能通过改变函数形参数组的值是实参数组的值改变?