STDIO
Tìm kiếm gần đây

    Nội dung

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

    26/04/2015
    28/03/2020
    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;
    }

     

    Bài viết liên quan

    Box2D - Phần 1: Giới Thiệu Và Một Số Thuật Ngữ Và Khái Niệm

    Giới thiệu về engine vật lý sử dụng trong games là Box2D. Giới thiệu Box2D, các khái niệm, cách thành phần liên quan, cách khởi tạo và thao tác với một số thành phần ...

    Trương Xuân Đạt23/01/2015

    Mảng Nhiều Chiều

    Mảng nhiều chiều cũng chứa nhiều phần tử, mỗi phần tử lại là một mảng một chiều, các mảng một chiều này có kích thước bằng nhau. Bài viết sẽ hướng dẫn cách khai báo, khởi ...

    Phi Phạm27/04/2015

    Thao Tác Trên Mảng 1 Chiều

    Sau khi khai báo int a[5]; ta có thể truy xuất đến các phần tử của a qua các chỉ số như a[0], a[1], a[2]... Tuy nhiên, không giống như khi khai báo, các chỉ số ở đây ...

    Phi Phạm26/04/2015

    BigData - Xu Thế Hay Điều Tất Yếu Đang Xảy Ra

    BigData là một khái niệm, để miêu tả về một khối lượng dữ liệu lớn, khổng lồ. Lớn đến mức dữ liệu không thể lưu trữ trong các hệ thống cơ sở dữ liệu quan hệ truyền thống. ...

    Lê Minh Trung26/05/2015

    Rvalue References Và Move Semantics

    Vì đây sẽ là một khái niệm khó hiểu đối với những người chưa biết về nó. Do đó, bài viết không đưa ra khái niệm “Move semantics” ngay mà sẽ đi sơ lượt qua các khái niệm ...

    Hoàng Tiến Đạt02/12/2014

    Sử Dụng Mảng Trong C++

    Mảng dữ liệu là một tập hợp các phần tử có cùng kiểu dữ liệu và được truy cập thông qua index. Việc vận dụng mảng dữ liệu trong việc học tập và làm việc là điều không thể ...

    Rye Nguyen29/07/2015

    Mảng 1 Chiều - Mảng 2 Chiều

    Mảng là tập hợp các phần tử có cùng kiểu dữ liệu, được lưu trữ tại các vùng nhớ liên tiếp nhau. Mỗi phần tử sẽ được xác định bằng một số thứ tự tương ứng vị trí của nó ...

    Nguyễn Đăng Khánh31/12/2015

    Lập Trình Win32 API - Phần 2: Tạo Cửa Sổ Cơ Bản

    Trong Hệ điều hành Windows, hệ thống cung cấp cho ta một công cụ lớn đó là Cửa Sổ Window. Bài viết sau đây cung cấp cho các bạn cách khởi tạo một Window đơn giản và rỗng ...

    Nguyên Phan12/09/2015

    CBP-5: Truyền Và Lấy Thông Số Từ Component

    Hiện thực phương thức truyền và nhận thông số cho các component, hiện thực CPosition – component xử lý tọa độ của Entity. Đây là một phần trong hệ thống do tôi sáng tạo ...

    Tuấn Trần20/08/2015

    Lập Trình Game Với DirectX - Phần 2: Khởi Tạo Cửa Sổ

    Ở bài viết cũ của mình, tôi có đề cập đến Game thực chất là 1 đối tượng trong chương trình. Đối tượng đó trải qua 3 giai đoạn chính gồm: Khởi Tạo (init), Chạy (run) và ...

    Trần Hữu Danh21/01/2015

    STDIO
    Trang chính
    Công ty TNHH STDIO

    30, Trịnh Đình Thảo, Hòa Thạnh, Tân Phú, Hồ Chí Minh
    +84 28.36205514 - +84 942.111912
    [email protected]

    383/1 Quang Trung, Phường 10, Quận Gò Vấp, Hồ Chí Minh
    Số giấy phép ĐKKD: 0311563559 do sở Kế hoạch và Đầu Tư TPHCM cấp ngày 23/02/2012

    ©STDIO, 2013 - 2020