【发布时间】:2014-10-23 07:39:22
【问题描述】:
考虑以下几点:
String[] array = {1,2,3,4};
myFunction(array);
public void myFunction(String[] array){
//some task here
}
我今天必须回答这个问题。
数组如何传递给函数?表示底层技术是什么?
当我没有回答时,我被告知以下内容。
传递第一个元素的地址,并通过添加一些x字节从第一个元素的地址获得其他连续元素。
这种情况会发生在每种编程语言中还是仅在 c 和 c++ 中?
谢谢!
【问题讨论】:
-
“这在每种编程语言中都会发生吗?”当然不是。并非所有语言都有函数和数组。 C 和 C++ 都不允许您将数组传递给函数。只有指向第一个元素的指针或(在 C++ 中)对数组的引用。
-
数组分配连续的内存位置,所以我认为它可能在 C/C++ 以外的语言中。
-
那么这就是某些编程语言中数组的处理方式?
-
只有 c 和 c++ 关心这种地址传递。指针的丑陋用法只有在 C 和 C++ 中(Java、C# 不需要你这样做,它们只需要数组)。
标签: java c++ c arrays memory-address