In the following C function, what is the purpose of the parameter int* a?

4 phương ánCó giải thích
Đề bài
void input(int* a, int n);

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "It is a pointer to the first element of the array". Trong C mảng không truyền được theo giá trị: viết tên mảng ở lời gọi thì nó tự suy biến thành địa chỉ phần tử đầu, nên tham số int* a nhận đúng địa chỉ đó, và trong hàm a[i] tương đương *(a + i), cho phép hàm ghi thẳng vào mảng của nơi gọi. Vì địa chỉ không mang theo số phần tử, hàm cần thêm tham số n, và đó mới là chỗ giữ kích thước, nên "It holds the array size" gán sai vai. Mô tả "It defines the function return type" sai vì kiểu trả về là void, viết trước tên hàm, chẳng liên quan tới danh sách tham số. Mô tả "It stores the index of the element" cũng sai vì chỉ số là một số nguyên thường, dùng bên trong hàm khi duyệt mảng, không phải một con trỏ.

Cùng phần 5

Xuất hiện trong 1 bộ đề