既然数组是特殊的指针那么数组在函数中也可以被改变值吗然后带回原函数
时间: 2024-09-20 09:13:11 浏览: 53
关于JS中setTimeout()无法调用带参函数问题的解决方法
当在函数中传递数组作为参数时,实际上传递的是数组的首地址(因为数组本质上是一个连续的内存区域)。所以,函数内部对数组元素的操作实际上是修改了原始数组。当你在函数中改变了数组的值,这些更改会影响到传入函数的那个数组。
例如,在C++中:
```cpp
void changeArray(int arr[], int size) {
for (int i = 0; i < size; i++) {
arr[i] *= 2; // 改变数组的每个元素
}
}
int main() {
int numbers[] = {1, 2, 3};
int arraySize = sizeof(numbers) / sizeof(numbers[0]);
changeArray(numbers, arraySize);
// main函数中的numbers现在已经被改变了,如{2, 4, 6}
return 0;
}
```
在这个例子中,`changeArray`函数通过指针操作影响到了`numbers`数组。因此,函数结束后,数组的值已经发生了变化。
阅读全文