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

Sự khác biệt giữa Mảng và Con trỏ trong C.

Mảng trong C được sử dụng để lưu trữ các phần tử cùng kiểu trong khi Con trỏ là biến địa chỉ lưu trữ địa chỉ của một biến. Bây giờ biến mảng cũng có một địa chỉ có thể được trỏ bởi một con trỏ và mảng có thể được điều hướng bằng con trỏ. R Lợi ích của việc sử dụng con trỏ cho mảng là hai lần, đầu tiên, chúng tôi lưu trữ địa chỉ của mảng được cấp phát động cho con trỏ và thứ hai, để truyền mảng cho một hàm. Sau đây là những điểm khác biệt trong việc sử dụng mảng và sử dụng con trỏ tới mảng.

  • Toán tử sizeof () in kích thước của mảng trong trường hợp mảng và trong trường hợp con trỏ, nó in kích thước của int.

  • chuyển nhượng Biến mảng không thể được gán địa chỉ của biến khác nhưng con trỏ có thể lấy nó.

  • giá trị đầu tiên giá trị được lập chỉ mục đầu tiên giống với giá trị của con trỏ. Ví dụ:mảng [0] ==* p.

  • sự lặp lại các phần tử mảng có thể được điều hướng bằng cách sử dụng các chỉ mục sử dụng [], con trỏ có thể cấp quyền truy cập vào các phần tử mảng bằng cách sử dụng số học con trỏ. Ví dụ:mảng [2] ==* (p + 2)

Ví dụ (C)

#include <stdio.h>
void printElement(char* q, int index){
   printf("Element at index(%d) is: %c\n", index, *(q+index));
}
int main() {
   char arr[] = {'A', 'B', 'C'};
   char* p = arr;
   printf("Size of arr[]: %d\n", sizeof(arr));
   printf("Size of p: %d\n", sizeof(p));
   printf("First element using arr is: %c\n", arr[0]);
   printf("First element using p is: %c\n", *p);
   printf("Second element using arr is: %c\n", arr[1]);
   printf("Second element using p is: %c\n", *(p+1));
   printElement(p, 2);
   return 0;
}

Đầu ra

Size of arr[]: 3
Size of p: 8
First element using arr is: A
First element using p is: A
Second element using arr is: B
Second element using p is: B
Element at index(2) is: C