Nội dung bài viết
Đăng ký học lập trình C++
Tại STDIO bạn được dạy nền tảng lập trình tốt nhất.
Đăng ký học
Tương tự như khai báo một biến bình thường, một mảng có thể dễ dàng được khai báo.

Giới thiệu

Một số cách để khai báo và khởi tạo giá trị của mảng.

Tiền đề bài viết

Bài viết nằm trong chương trình học lập trình cơ bản với ngôn ngữ C++ của Stdio.

Đối tượng hướng đến

Bài viết dành cho những người mới bắt đầu làm quen với ngôn ngữ lập trình C++

Khai báo mảng

Tương tự như khai báo một biến bình thường, một mảng có thể dễ dàng được khai báo như sau:

kiểu_dữ_liệu tên_mảng [số_phần_tử];
  • Kiểu dữ liệu ở đây có thể là các kiểu dữ liệu có sẵn trong C++ hay do người dùng tự định nghĩa.

  • Tên mảng được đặt cùng quy tắc với tên biến trong C++, tham khảo tại Stdio #136.

  • Số phần tử của mảng phải là số nguyên dương lớn hơn 0.

Ví dụ

Ta khai báo mảng int có tên number gồm 5 phần tử như sau:

int number [5];

Lưu ý

Vì đây là khai báo tĩnh, số vùng nhớ cấp phát cho mảng được xác định từ giai đoạn biên dịch, trước khi chương trình chạy. Cho nên, số_phần_tử ở đây phải mang giá trị hằng số.

#include <iostream>
using namespace std;

int main()
{
       const int a = 5;
       int b = 5;
       int c[a];     // Khong bao loi, vi a là hang so.
       int d[5];     // Khong bao loi, vi 5 là hang so.
       int e[b];     // Bao loi, vi b khong la hang so.
}

Khởi tạo giá trị cho các phần tử mảng

Sau khi khai báo, nếu chúng ta không khởi tạo giá trị ban đầu cho các phần tử, thì các phần tử sẽ mang giá trị rác. Tuy nhiên, nếu là mảng static, thì các phần tử sẽ được khởi tạo giá trị 0. Ví dụ khi khai báo: 

static int a[5];

ta sẽ được mảng a chứa 5 giá trị 0 mà không cần khởi tạo.

Khởi tạo ngay khi khai báo

Chúng ta hoàn toàn có thể khởi tạo giá trị cho các phần tử ngay khi khai báo mảng.

kiểu_dữ_liệu tên_mảng [số_phần_tử] = {giá_trị_1, giá_trị_2, giá_trị_3...};

Ví dụ

khi khai báo

int a[5] = { 1, 2, 3, 4, 5 }; 

ta được mảng a với các giá trị a[0], a[1], a[2], a[3], a[4] có giá trị lần lượt là 1, 2, 3, 4, 5.

Lưu ý

  • Nếu số lượng giá trị trong dấu {...} lớn hơn số_phần_tử của mảng, trình biên dịch sẽ báo lỗi.

  • Nếu số lượng giá trị trong dấu {...} nhỏ hơn số_phần_tử của mảng, những phần tử còn lại sẽ được gán giá trị mặc định là 0.

Ví dụ

  • Khai báo int a[5] = { 1, 2, 3}; ta được mảng a với các giá trị a[0], a[1], a[2], a[3], a[4] có giá trị lần lượt là 1, 2, 3, 0, 0.

  • Khai báo int a[5] = { }; ta được mảng a với tất cả các phần tử đều có giá trị 0.

Ngoài ra, chúng ta cũng có thể khai báo một mảng và gán giá trị cho nó mà không biết trước số lượng phần tử bằng cách bỏ trống phần số_phần_tử.

  • Khai báo int a[] = { 1, 2, 3}; ta được mảng a - 3 phần tử với các giá trị a[0], a[1], a[2] có giá trị lần lượt là 1, 2, 3.

  • Giống như việc khai báo mảng với số_phần_tử = 0, khai báo int a[] = {}; cũng sẽ báo lỗi tương tự.

Khởi tạo sau khi khai báo

Đôi khi chúng ta không cần thiết phải khởi tạo giá trị cho mảng ngay lập tức, chúng ta có thể làm việc này bằng cách gán thủ công từng phần tử, hoặc sử dụng vòng lặp:

#include <iostream>
using namespace std;

int main()
{
	int a[3];
	a[0] = 0;
	a[1] = 2;
	a[2] = 3;
}

 

THẢO LUẬN