Tìm hiểu kiến thức về mảng trong ngôn ngữ C

  • Tìm hiểu kiến thức về mảng trong ngôn ngữ C

    • 13 September

      2018

    • Tự học lập trình C – C++

    Mảng trong ngôn ngữ C là một loại cấu trúc dữ liệu có thể lưu trữ một tập hợp tuần tự kích thước cố định của các phần tử cùng loại. Một mảng được sử dụng để lưu trữ một bộ sưu tập dữ liệu, nhưng thường hữu ích hơn khi nghĩ về một mảng như một tập hợp các biến cùng loại.

    Thay vì khai báo các biến riêng lẻ, chẳng hạn như number0, number1, … và number99, bạn khai báo một biến mảng như số và số sử dụng [0], số [1] và …, số [99] để biểu diễn các biến riêng lẻ. Một phần tử cụ thể trong một mảng được truy cập bởi một chỉ mục.

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

    1. Khai báo mảng

    Để khai báo một mảng trong C, lập trình viên xác định loại phần tử và số phần tử được yêu cầu bởi một mảng như sau:

    type arrayName [ arraySize ];

    Đây được gọi là mảng đơn chiều, các arraySize phải là một hằng số nguyên lớn hơn không và có thể được bất kỳ loại C dữ liệu hợp lệ. Ví dụ, để khai báo một mảng 10 phần tử được gọi là sự cân bằng của kiểu double, hãy sử dụng câu lệnh này:

    double balance[10];

    Số dư ở đây là một mảng biến đủ để chứa tối đa 10 số kép.

    2. Khởi tạo mảng

    Bạn có thể khởi tạo một mảng trong C hoặc từng cái một bằng cách sử dụng một câu lệnh đơn như sau:

    double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0};

    Số lượng các giá trị giữa các dấu ngoặc {} không được lớn hơn số phần tử mà chúng ta khai báo cho mảng giữa các dấu ngoặc vuông [].

    Nếu bạn bỏ qua kích thước của mảng, một mảng chỉ đủ lớn để giữ khởi tạo được tạo ra. Do đó, nếu bạn viết:

    double balance[] = {1000.0, 2.0, 3.4, 7.0, 50.0};

    Bạn sẽ tạo chính xác cùng một mảng như bạn đã làm trong ví dụ trước. Sau đây là một ví dụ để gán một phần tử duy nhất của mảng:

    balance[4] = 50.0;

    Câu lệnh trên gán phần tử thứ 5 trong mảng với giá trị là 50.0. Tất cả các mảng có 0 là chỉ số của phần tử đầu tiên của chúng, cũng được gọi là chỉ mục cơ sở và chỉ mục cuối cùng của mảng sẽ là tổng kích thước của mảng trừ đi 1. Hiển thị bên dưới là biểu diễn hình ảnh của mảng mà chúng ta đã thảo luận ở trên:

    3. Truy cập các phần tử mảng

    Một phần tử được truy cập bằng cách lập chỉ mục tên mảng. Điều này được thực hiện bằng cách đặt chỉ mục của phần tử trong dấu ngoặc vuông sau tên của mảng. Ví dụ:

    double salary = balance[9];

    Câu lệnh trên sẽ lấy phần tử thứ 10 từ mảng và gán giá trị cho biến lương. Ví dụ sau đây hiển thị cách sử dụng tất cả ba khái niệm được đề cập ở trên viz. khai báo, gán và truy cập mảng:

    #include

    int main () {

      int n[ 10 ]; /* n is an array of 10 integers */

      int i,j;

      /* initialize elements of array n to 0 */         

      for ( i = 0; i < 10; i++ ) {

         n[ i ] = i + 100; /* set element at location i to i + 100 */

      }

      /* output each array element’s value */

      for (j = 0; j < 10; j++ ) {

         printf(“Element[%d] = %d\n”, j, n[j] );

      }

      return 0;

    }

    Khi mã trên được biên dịch và thực hiện, nó tạo ra kết quả sau:

    Element[0] = 100

    Element[1] = 101

    Element[2] = 102

    Element[3] = 103

    Element[4] = 104

    Element[5] = 105

    Element[6] = 106

    Element[7] = 107

    Element[8] = 108

    Element[9] = 109

    4. Chi tiết về mảng trong C

    Mảng là phần tử quan trọng trong C và cần chú ý nhiều hơn. Các khái niệm quan trọng sau liên quan đến mảng mà bất cứ một lập trình viên nào cũng cần nắm được:

    • Mảng đa chiều: C hỗ trợ các mảng đa chiều. Dạng đơn giản nhất của mảng đa chiều là mảng hai chiều.

    • Truyền mảng cho hàm: Bạn có thể chuyển đến hàm một con trỏ tới một mảng bằng cách chỉ định tên của mảng mà không có chỉ mục.

    • Trả về mảng từ một hàm: C cho phép một hàm trả về một mảng.

    • Trỏ tới một mảng trong C: Bạn có thể tạo một con trỏ tới phần tử đầu tiên của một mảng bằng cách chỉ định tên mảng, không có bất kỳ chỉ mục nào.

    Một số tài liệu liên quan đến lập trình C khác bạn nên đọc: