龙空技术网

第74课C语言数组传递是地址传递 0基础学C语言

搬运工码农 37

前言:

此刻同学们对“c语言值传递和地址传递的区别”都比较关切,朋友们都想要学习一些“c语言值传递和地址传递的区别”的相关文章。那么小编在网络上收集了一些对于“c语言值传递和地址传递的区别””的相关文章,希望大家能喜欢,朋友们快快来学习一下吧!

大家好,今天我们来聊聊数组作为参数。首先我们来了解一下数组的存储方式。在程序中定义一个长度为四的整形数组,输入n的值,输出该元数的地址。百分号和p分别表示地址和元素的大小。

接下来,我们来看看如何输出数组地址。输出数组地址的方法是使用数组名,程序运行如下:依次输出元素的地址。通过元素的地址可以看出,相邻两个元素的地址相差四。因为整形数据占四个字节。

不同的编译器和机器分配内存单元的方式不同,因此大家的运行结果可能会有所不同。但是,它们都是连续的。接下来,我们来了解一下数组的首地址。通过数组名可以得到数组首元数的地址,因为数组名表示的是数组首元数的地址。需要注意的是,数组元素在存储时是连续的,数组名则用于记录数组首元数的地址。

接下来,我们来看看一维数组作为参数的用法。在组函数中定义一个整行数组,然后调用该函数,将数组作为参数。在数组函数中定义了一个数组和一个数组变量。通过原程序可以发现,一维数组作为名称的格式说明符,数组名后面需要加上括号和长度。

通常情况下,可以省略长度,但是括号不能省略。另外,可以定义一个函数来表示数组的长度,例如在上述函数中缩放了数组的长度。另外,可以定义一个数组变量N来表示数组的长度。在调用数组函数时,只需要将数组名和数组的长度作为参数进行传递。

接下来,我们来看看一维数组作为参数的用法。在主函数中定义了一个整形数组,然后调用该函数。在放函数中接收数组,并将每个元数增加两个。放函数执行完毕后回到主函数,输出数组中的值。

原因是数组名是数组元素的地址,因此数组名作为参数是地址传递。在上一节课中,我们讲解了地址传递的概念。数组发生变化时,也要进行相应的变化。

接下来,我们来看看二维数组作为参数的用法。在组函数中定义一个二维数组,然后调用该函数,将二维数组作为参数。通过程序可以发现,二维数组作为参数的类型说明符,数组名后面需要加上括号和长度。

第二维长度不能省略,因此第二个括号没有省略。二维数组作为参数时,可以直接使用数组名。接下来,我们来看看二维数组作为参数的用法。在组函数中定义一个二位数组,然后调用该函数,将二位数组作为参数。

第二行的元数等于第二行的和。因此,第一行的输出结果保持不变,第二行变成了0.09。因为数组的加一等于零,四加负三等于一,六加三等于九。需要注意的是,数组名表示的是数组元素的地址,因此,当行参发生改变时,参也需要随之改变。

在主函数中,我们定义了一个名为stringD的字符数组,并使用f函数将其作为参数进行传递。在f函数中,我们使用for语句来改变数组元素的值。只要数组元素不等于'a,我们就为自己赋值。如果数组元素等于'a,我们就舍弃'a的值,并将后面的元素往前移动一位。最终的输出结果为"good"。

接下来,我们将对本节课的内容进行总结。数组元素在内存中是连续存储的,数组名用于记录数组首元素的地址。使用数组名作为参数,是地址传递,行参发生变化,数组也要变化。需要特别注意的是,数组作为行参时,其格式为“数组名[数组长度]”,其中数组长度可以省略,而二维数组作为行参时,其格式为“数组名[数组长度1][数组长度2]”,第一维数组长度可以省略,第二维数组长度不能省略。

下一节我们将学习变量的作用域。本节课就到这里,谢谢大家的听讲。

标签: #c语言值传递和地址传递的区别