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

Mục lục:

Anonim

Các Sự khác biệt chính giữa mảng và con trỏ là một mảng là một cấu trúc dữ liệu lưu trữ một tập hợp các phần tử có cùng kiểu dữ liệu trong khi con trỏ là một biến giữ địa chỉ của một biến khác trong bộ nhớ máy tính.

Mảng và con trỏ là hai khái niệm được sử dụng trong các ngôn ngữ lập trình như C và C ++. Mảng là một tập hợp dữ liệu chứa một số giá trị cố định của cùng một kiểu dữ liệu. Ví dụ, để lưu trữ điểm của 10 học sinh, lập trình viên có thể tạo một mảng có thể lưu trữ 10 số nguyên. Mặt khác, một con trỏ là một biến giữ địa chỉ của một biến khác. Con trỏ giúp truy cập bộ nhớ và thao tác địa chỉ bộ nhớ.

Mảng, Con trỏ

Mảng là gì

Mảng là một cấu trúc dữ liệu lưu trữ một số lượng cố định các phần tử cùng kiểu. Tất cả các phần tử của mảng đều nằm trong các vị trí bộ nhớ liền nhau.

Hình 1: Mảng

Giả sử rằng bạn cần lưu trữ các giá trị của 50 số nguyên. Có thể tạo biến cho từng số nguyên nhưng khó và tốn nhiều thời gian hơn. Một mảng có thể được sử dụng để khắc phục vấn đề này.

số int [50];

Câu lệnh trên sẽ cấp phát một mảng được gọi là số, có thể lưu trữ năm mươi số nguyên. Một phần tử cụ thể của mảng có thể được đánh giá bằng cách sử dụng chỉ mục. Chỉ số bắt đầu là 0. Vì có 50 phần tử trong mảng, phần tử cuối cùng có chỉ số 49.

số [1] = 30;

Câu lệnh trên sẽ gán giá trị 30 cho 1NS chỉ số của mảng số.

Ví dụ, trung bình kép [10]; sẽ tạo ra một mảng được gọi là trung bình. Nó có thể lưu trữ 10 giá trị kép.

Một mảng dễ tạo hơn và dễ truy cập các phần tử hơn. Mặt khác, một mảng có kích thước cố định. Nếu kích thước mảng là 10, nó không thể được sử dụng để lưu trữ 20 phần tử. Nói cách khác, cấp phát bộ nhớ cho một mảng là tĩnh.

Con trỏ là gì

Một biến là một vị trí bộ nhớ để lưu trữ một giá trị. Mỗi vị trí bộ nhớ đều có một địa chỉ để xác định nó.

Hình 2: Con trỏ

Con trỏ là một biến lưu trữ địa chỉ của một biến khác. Con trỏ được khai báo trước khi lưu trữ một địa chỉ biến. Dấu * dùng để khai báo một con trỏ.

int * ptr;

Ptr là một con trỏ đến một biến số nguyên.

kép * ptr1;

Ptr1 là một con trỏ đến một biến kép. Tham khảo mã sau.

Hình 3: Chương trình với con trỏ

Biến ‘a’ chứa giá trị 20. ptr là một con trỏ tới một số nguyên. Trong dòng 8, ptr được gán với địa chỉ của biến a. Bây giờ ptr đang chỉ đến a. Do đó, in giá trị được trỏ bởi ptr sẽ cho giá trị của a.

Nếu không có địa chỉ nào được gán, con trỏ có thể được gán với giá trị NULL. Loại con trỏ này được gọi là con trỏ null.

int * ptr = NULL;

Mối quan hệ giữa mảng và con trỏ

Tham khảo chương trình bên dưới.

Hình 4: Mảng với con trỏ

Có một mảng được gọi là arr. Nó chứa 5 số nguyên. Ptr là một con trỏ tới một số nguyên. Trong dòng 8, arr được gán cho ptr. Do đó, ptr đang trỏ đến phần tử chỉ số thứ 0 của mảng. In giá trị ptr sẽ hiển thị giá trị 0NS phần tử chỉ mục. Nó là 10.

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

Sự định nghĩa

Mảng là một cấu trúc dữ liệu bao gồm một tập hợp các phần tử mỗi phần tử được xác định bởi chỉ số mảng. Con trỏ là một đối tượng ngôn ngữ lập trình lưu trữ địa chỉ bộ nhớ của một giá trị khác nằm trong bộ nhớ máy tính.

Nền tảng

Trong khi một mảng tham chiếu đến một tập hợp các phần tử dữ liệu, một con trỏ là một biến trỏ đến một số vị trí bộ nhớ khác.

Cú pháp

Cú pháp mảng - kiểu dữ liệu arrayName [kiểu dữ liệu];

Cú pháp con trỏ - kiểu dữ liệu * tên_biến;

Sử dụng

Mặc dù mảng có thể được sử dụng để cấp phát bộ nhớ có kích thước cố định (bộ nhớ tĩnh), con trỏ có thể được sử dụng để cấp phát bộ nhớ động.

Phần kết luận

Hai thuật ngữ mảng và con trỏ là hai khái niệm lập trình. Sự khác biệt giữa mảng và con trỏ là mảng là một cấu trúc dữ liệu lưu trữ tập hợp các phần tử có cùng kiểu dữ liệu trong khi con trỏ là một biến giữ địa chỉ của một biến khác trong bộ nhớ máy tính.

Thẩm quyền giải quyết:

1. "Mảng trong C." Www.tutorialspoint.com, Tutorials Point, Có sẵn tại đây.2. "Con trỏ trong C." Www.tutorialspoint.com, Điểm Hướng dẫn, Có sẵn tại đây.

Hình ảnh lịch sự:

1. “CPT-Lập trình-mảng” của Pluke - Tác phẩm riêng (CC0) qua Commons Wikimedia2. “Con trỏ” bởi Người dùng: Công việc của SvenTranslation (CC BY-SA 3.0) của Commons Wikimedia.

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