C Mảng

95% Lập Trình Viên giỏi Đọc Hiểu English! Bạn Thì Sao?

Trong hướng dẫn này, bạn sẽ học cách làm việc với các mảng. Bạn sẽ học cách khai báo, khởi tạo và truy cập các phần tử của một mảng với sự trợ giúp của các ví dụ.Mảng trong C

Mảng là một biến có thể lưu trữ nhiều giá trị. Ví dụ: nếu bạn muốn lưu trữ 100 số nguyên, bạn có thể tạo một mảng cho nó.

int data[100];

Cách khai báo mảng?

dataType arrayName[arraySize];

Ví dụ,

float mark[5];

Ở đây, chúng ta đã khai báo một mảng, dấu , kiểu dấu phẩy động. Và kích thước của nó là 5. Có nghĩa là, nó có thể chứa 5 giá trị dấu phẩy động.

Điều quan trọng cần lưu ý là không thể thay đổi kích thước và kiểu của một mảng sau khi nó được khai báo.

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

Bạn có thể truy cập các phần tử của một mảng theo các chỉ số.

Giả sử bạn đã khai báo một dấu mảng như trên. Phần tử đầu tiên là mark [0] , phần tử thứ hai là mark [1] , v.v.Khai báo một mảng

Vài chú thích chính :

  • Arrays have 0 as the first index, not 1. In this example, mark[0] is the first element.
  • If the size of an array is n, to access the last element, the n-1 index is used. In this example, mark[4]
  • Suppose the starting address of mark[0] is 2120d. Then, the address of the mark[1] will be 2124d. Similarly, the address of mark[2] will be 2128d and so on.
    This is because the size of a float is 4 bytes.

Làm thế nào để khởi tạo một mảng?

Có thể khởi tạo mảng trong quá trình khai báo. Ví dụ,

int mark[5] = {19, 10, 8, 17, 9};

Bạn cũng có thể khởi tạo một mảng như thế này.

int mark[] = {19, 10, 8, 17, 9};

Ở đây, chúng tôi chưa xác định kích thước. Tuy nhiên, trình biên dịch biết kích thước của nó là 5 vì chúng ta đang khởi tạo nó với 5 phần tử.Khởi tạo một mảng

Đây,

mark[0] is equal to 19
mark[1] is equal to 10
mark[2] is equal to 8
mark[3] is equal to 17
mark[4] is equal to 9

Thay đổi Giá trị của các phần tử Mảng

int mark[5] = {19, 10, 8, 17, 9}

// make the value of the third element to -1
mark[2] = -1;

// make the value of the fifth element to 0
mark[4] = 0;

Phần tử mảng đầu vào và đầu ra

Đây là cách bạn có thể lấy đầu vào từ người dùng và lưu trữ nó trong một phần tử mảng.

// take input and store it in the 3rd element
​scanf("%d", &mark[2]);

// take input and store it in the ith element
scanf("%d", &mark[i-1]);

Đây là cách bạn có thể in một phần tử riêng lẻ của một mảng.

// print the first element of the array
printf("%d", mark[0]);

// print the third element of the array
printf("%d", mark[2]);

// print ith element of the array
printf("%d", mark[i-1]);

Ví dụ 1: Đầu vào / đầu ra của mảng

// Program to take 5 values from the user and store them in an array
// Print the elements stored in the array
#include <stdio.h>

int main() {
  int values[5];

  printf("Enter 5 integers: ");

  // taking input and storing it in an array
  for(int i = 0; i < 5; ++i) {
     scanf("%d", &values[i]);
  }

  printf("Displaying integers: ");

  // printing elements of an array
  for(int i = 0; i < 5; ++i) {
     printf("%d\n", values[i]);
  }
  return 0;
}

Đầu ra

Enter 5 integers: 1
-3
34
0
3
Displaying integers: 1
-3
34
0
3

Ở đây, chúng tôi đã sử dụng một  forvòng lặp để lấy 5 đầu vào từ người dùng và lưu trữ chúng trong một mảng. Sau đó, sử dụng một forvòng lặp khác  , các phần tử này được hiển thị trên màn hình.

Ví dụ 2: Tính trung bình

// Program to find the average of n numbers using arrays

#include <stdio.h>
int main()
{
     int marks[10], i, n, sum = 0, average;

     printf("Enter number of elements: ");
     scanf("%d", &n);

     for(i=0; i<n; ++i)
     {
          printf("Enter number%d: ",i+1);
          scanf("%d", &marks[i]);
          
          // adding integers entered by the user to the sum variable
          sum += marks[i];
     }

     average = sum/n;
     printf("Average = %d", average);

     return 0;
}

Đầu ra

Enter n: 5
Enter number1: 45
Enter number2: 35
Enter number3: 38
Enter number4: 31
Enter number5: 49
Average = 39

Ở đây, chúng tôi đã tính giá trị trung bình của n số do người dùng nhập vào.

Truy cập các phần tử ra khỏi giới hạn của nó!

Giả sử bạn đã khai báo một mảng gồm 10 phần tử. Hãy cùng nói nào,

int testArray[10];

Bạn có thể truy cập các phần tử mảng từ testArray[0]đến testArray[9].

Bây giờ hãy nói nếu bạn cố gắng truy cập testArray[12]. Phần tử không có sẵn. Điều này có thể gây ra đầu ra không mong muốn (hành vi không xác định). Đôi khi bạn có thể gặp lỗi và đôi khi chương trình của bạn có thể chạy chính xác.

Do đó, bạn không bao giờ được truy cập các phần tử của một mảng bên ngoài giới hạn của nó.

Mảng đa chiều

Trong hướng dẫn này, bạn đã học về mảng. Các mảng này được gọi là mảng một chiều.

Trong phần hướng dẫn tiếp theo, bạn sẽ tìm hiểu về mảng nhiều chiều (mảng của một mảng) .









Tìm kết quả nhanh