c - 数组元素也是按值传递还是按引用传递?

标签 c

我知道数组在函数调用中是通过引用传递的,但是如果你只传递一个数组元素呢? 函数(ar[0])arg[0] 是按值传递还是按引用传递?

最佳答案

数组不是通过引用传递的,当用作函数参数或表达式时,它们衰减为指针,但作为sizeof 运算符的操作数除外。因此,函数接收指向数组第一个元素的指针,无论参数在函数原型(prototype)中是如何定义的,是指针还是数组。

如果你传递一个数组元素,它是按值传递的,除非这个数组元素本身是一个数组,在这种情况下传递一个指向第一个元素的指针。

关于c - 数组元素也是按值传递还是按引用传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36120764/

相关文章:

C11 - 将指向结构的指针转换为结构的匿名第一个成员

C - 函数不返回值?

c - 逗号运算符 , 的作用是什么?

c - 将 C 程序从 Linux 迁移到 Windows

c - sizeof() 运算符的格式说明符

c - 诅咒中的多个游标

c - 在 dev c++ 中将 int* 分配给 int[] 无法按预期工作

C:删除链表

c - Linux内核模块编程中_do_fork()的问题

编译器优化对使用 PAPI 的 FLOP 和 L2/L3 缓存未命中率的影响