Computer >> Máy Tính >  >> Lập trình >> lập trình C

Tại sao C xử lý các tham số mảng là con trỏ?


C coi tham số mảng là con trỏ vì nó tốn ít thời gian hơn và hiệu quả hơn. Mặc dù nếu chúng ta có thể chuyển địa chỉ của từng phần tử của mảng cho một hàm dưới dạng đối số nhưng sẽ tốn nhiều thời gian hơn. Vì vậy, tốt hơn là chuyển địa chỉ cơ sở của phần tử đầu tiên vào hàm như:

void fun(int a[]) {
…
}
void fun(int *a) { //more efficient.
…..
}

Đây là mã mẫu trong C:

#include

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

void display2(int *a) //printing the array content
{
   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}; //initialization of array elements

   display1(a);
   display2(a);
   return 0;
}

Đầu ra

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