#include <iostream>
using namespace std;
void printarray (int arg[], int length) {
for (int n = 0; n < length; n++) {
cout << arg[n] << " ";
cout << "\n";
}
}
int main()
{
int firstarray[] = {5, 10, 15};
int secondarray[] = {2, 4, 6, 8, 10};
printarray(firstarray, 3);
printarray(secondarray, 5);
return 0;
}
Mã này hoạt động, nhưng tôi muốn hiểu cách mảng được truyền.Truyền mảng sang hàm trong C++
Khi có cuộc gọi đến chức năng printarray
từ chức năng chính, tên của mảng đang được chuyển. Tên của mảng đề cập đến địa chỉ của phần tử đầu tiên của mảng. Làm thế nào để điều này tương đương với int arg[]
?
Chỉ cần cụ thể, tên của mảng đề cập đến mảng. Nó có thể được chuyển đổi thành một con trỏ đến phần tử đầu tiên, đó là những gì xảy ra trong hầu hết các trường hợp. –