Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Tại sao C coi tham số mảng như con trỏ?


C coi tham số mảng như con trỏ vì ít tốn thời gian và hiệu quả hơn. Dù có thể truyền địa chỉ từng phần tử mảng cho hàm làm đối số nhưng tốn thời gian hơn. Tốt hơn truyền địa chỉ cơ sở phần tử đầu tiên như:

void fun(int a[]) { ... }
void fun(int *a) { // hiệu quả hơn. ... }

Mã mẫu C:

#include <stdio.h>

void display1(int a[]) { // in nội dung mảng
    int i;
    printf("\nCurrent content of the array is: \n");
    for(i = 0; i < 5; i++)
        printf(" %d", a[i]);
}

void display2(int *a) { // in nội dung mảng
    int i;
    printf("\nCurrent content of the array is: \n");
    for(i = 0; i < 5; i++)
        printf(" %d", *(a+i));
}

int main() {
    int a[5] = {4, 2, 7, 9, 6}; // khởi tạo mảng
    display1(a);
    display2(a);
    return 0;
}

Kết quả

Current content of the array is: 4 2 7 9 6
Current content of the array is: 4 2 7 9 6