So sánh khác rỗng trong mảng trong c năm 2024

Mảng trong C/C++ là gì? Nếu chưa biết, mời bạn cùng Quantrimang.com tìm hiểu những điều cần biết về mảng C++/C nhé!

Mảng là một loại cấu trúc dữ liệu trong ngôn ngữ lập trình C/C++, nó lưu trữ một tập hợp tuần tự các phần tử cùng kiểu với độ dài cố định. Mảng thường được sử dụng để lưu trữ tập hợp dữ liệu, nhưng nó cũng hữu dụng khi dùng để lưu trữ một tập hợp biến có cùng kiểu.

Thay vì khai báo biến một cách rời rạc, như biến bien1, bien1,… và bien99, bạn có thể khai báo một mảng các giá trị như bien[0], bien[1] và … bien[99] để biểu diễn các giá trị riêng biệt. Một phần tử cụ thể của mảng có thể được truy cập qua index [chỉ số].

Tất cả mảng đều bao gồm các vị trí nhớ liền kề nhau. Địa chỉ thấp nhất tương ứng với phần tử đầu tiên và địa chỉ cao nhất tương ứng với thành phần cuối cùng của mảng.

Tại sao cần dùng tới mảng?

Bạn có thể dùng các biến mảng bình thường [v1, v2, v3…] khi có một số lượng nhỏ các đối tượng. Thế nhưng nếu muốn lưu trữ nhiều trường hợp, việc quản lý chúng sẽ khó hơn với các biến bình thường. Ý tưởng cho sự ra đời của mảng đại diện cho nhiều trường hợp dùng biến.

Ưu điểm:

  • Tối ưu hóa code: Bạn có thể trích xuất hoạc phân loại dữ liệu hiệu quả.
  • Truy cập ngẫu nhiên: Lấy dữ liệu nằm ở một vị trí index.

Nhược điểm:

Giới hạn kích thước:Chỉ có thể lưu trữ kích thước cố định của các phần tử trong mảng. Nó không mở rộng kích thước ở thời gian chạy..

Array vs Pointer

Array và pointer là hai nhân tố khác nhau trong lập trình C/C++. Sự nhầm lẫn thường xảy ra do tên mảng chỉ địa chỉ của nhân tố đầu tiên và mảng thường được chuyển dưới dạng poiter [ngay cả khi bạn dùng dấu ngoặc vuông]. Vì thế, hãy lưu ý trước khi dùng array và pointer trong lập trình C/C++.

Khai báo mảng trong C/C++

Để khai báo một mảng trong ngôn ngữ C/C++, bạn xác định kiểu của phần tử và số lượng các phần tử được yêu cầu bởi biến đó như sau:

Kieu Ten_mang [ Kich_co_mang ];

Đây là mảng một chiều. Kich_co_mang phải là một số nguyên lớn hơn 0 và Kieu phải hợp lệ trong ngôn ngữ C/C++. Ví dụ, khai báo mảng balance với 10 phần tử có kiểu double, sử dụng câu lệnh sau đây:

char balance[10];

Khởi tạo mảng trong C/C++

Bạn có thể khởi tạo mảng trong C/C++ hoặc từng phần tử một hoặc sử dụng một câu lệnh như dưới đây:

int balance[5] = {15, 20, 25, 30, 35};

Số lượng các giá trị trong dấu ngoặc nhọn {} không được lớn hơn số lượng phần tử khai báo trong dấu ngoặc vuông [].

Nếu bạn không khai báo kích cỡ mảng thì mảng vừa đủ lớn để giữ các giá trị được khởi tạo. Vì vậy nếu viết như dưới đây bạn vẫn sẽ nhận được mảng giống hệt bên trên:

int balance[] = {15, 20, 25, 30, 35};

Bạn có thể tạo ra cùng một mảng giống như đã làm trong ví dụ trước.

balance[4] = 35;

Câu lệnh bên trên gán phần tử thứ 5 của mảng có giá trị 35. Tất cả các mảng đều có chỉ số [index] đầu tiên bằng 0, đây được gọi là chỉ số cơ bản và phần tử cuối cùng của mảng có chỉ số bằng độ lớn của mảng trừ đi 1. Dưới đây là cách biểu diễn hình họa cho chuỗi khai báo bên trên thông qua chỉ số:

01234balance1520253035

Truy cập các phần tử mảng trong C/C++

Một mảng được truy cập bởi cách đánh chỉ số trong tên của mảng. Dưới đây là một cách truy cập một giá trị của mảng:

int hocphi = hocphik60[55];

Câu lệnh trên lấy phần tử thứ 56 của mảng và gán giá trị này cho biến hocphi. Dưới đây là một ví dụ về việc sử dụng với tất cả mô tả bên trên:


# include  
using namespace std; 

# include  
using std::setw; 
int main [] 
{ 
   int n[10]; 
   //n la mot mang gom 10 so nguyen 
   //khoi tao gia tri cac phan tu cua mang n la 0 
   for [int i = 0; i < 10; i++] 
   { 
      n[i] = i + 100; 
      //thiet lap phan tu tai vi tri i la i + 100 
   } 
   cout 

Chủ Đề