Search…

Khai Báo và Khởi Tạo Giá Trị các Phần Tử của Mảng

17/09/20203 min read
Tìm hiểu cách khai báo và khởi tạo giá trị các phần tử của mảng trong 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 bài viết.

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

Ví dụ

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 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ới các kiểu dữ liệu số học và NULL với kiểu con trỏ. Ví dụ khi khai báo: 

static int a[5];

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

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}; đượ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] = { }; được mảng a với tất cả các phần tử đều có giá trị 0.

Ngoài ra 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}; đượ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 không cần thiết phải khởi tạo giá trị cho mảng ngay lập tức, 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;
}

 

IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024