返回介绍

5.2.1 数组元素作为函数参数

发布于 2025-04-11 22:32:57 字数 901 浏览 0 评论 0 收藏 0

数组在定义时就确定了数组元素的数据类型,用户可以通过下标轻松地访问数组元素,并将数组元素像具有相同数据类型的变量一样来使用,包括将它作为函数调用的实际参数。

下面在主函数中定义一个长度为 5 的 int 类型的数组 a,并对其进行初始化:

int a[5] = {1, 2, 3, 4, 5};

然后再定义一个函数 printElement:

该函数无返回值,并且只有一个 int 类型、名字为 e 的参数。在函数体中,首先通过乘号复合赋值运算符,将参数值扩大 10 倍,然后通过 printf 函数调用语句将这个参数值打印在窗口上。注意,在参数值后面还有一个空格。

最后,我们在主函数里通过 for 循环语句遍历数组,并将数组元素作为参数调用 printElement 函数:

for(int i = 0; i < 5; ++i)
    printElement(a[i]);

编译运行这个程序,它会在窗口上打印出如下结果:

10 20 30 40 50

对于这样的输出结果,大家应该没有什么疑问。但是需要大家考虑的是,数组中的元素值改变了吗?是否被扩大了 10 倍?

C 语言中,函数在调用时,实参与形参之间是采用值传递的形式进行传递的,即将实参的值复制一份给形参。虽然初始时形参会具有和实参相同的值,但由于实参与形参各自都有自己单独的内存空间,所以不管形参的值如何改变,都不会影响实参的值。

因此,数组中各元素仍保持着原来的值,不会被扩大 10 倍。想要验证也很简单,大家可以利用循环,将所有的数组元素重新打印一遍。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。