Mảng (Array) Trong C/C++ | Hỏi Gì?

Có phải bạn đang tìm kiếm chủ đề về => Mảng (Array) Trong C/C++ | Hỏi Gì? phải ko? Nếu đúng tương tự thì mời bạn xem nó ngay tại đây. Xem thêm các bài viết hay khác tại đây => Tin Tức

Mảng là một kiểu cấu trúc dữ liệu trong tiếng nói lập trình C / C ++ lưu trữ một tập trung tuần tự các phần tử cùng kiểu với độ dài cố định. Mảng thường được sử dụng để lưu trữ các tập trung dữ liệu, nhưng chúng cũng hữu ích lúc lưu trữ một tập trung các biến cùng kiểu.

Thay vì khai báo các biến một cách lẻ tẻ như bien1, bien1,… và bien99, bạn có thể khai báo một mảng trị giá như bien[0]bien[1] và… bien[99] để đại diện cho các trị giá riêng lẻ. Một phần tử cụ thể của mảng có thể được truy cập thông qua chỉ mục.

Bạn đang xem: khai báo mảng

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

Khai báo mảng trong C / C ++

Để khai báo một mảng trong C / C ++, bạn chỉ định kiểu của phần tử và số phần tử theo yêu cầu của biến như sau:

Kieu Ten_manga [ Kich_co_mang ];

Đây là mảng một chiều. Size_co_manage phải là một số nguyên lớn hơn 0 và Kiều phải hợp thức trong tiếng nói C / C ++. Ví dụ, để khai báo số dư mảng có 10 phần tử kiểu double, hãy sử dụng câu lệnh sau:

thăng bằng char[10];

Khởi tạo mảng trong C / C ++

Bạn có thể khởi tạo mảng trong C / C ++ hoặc từng phần tử hoặc sử dụng một câu lệnh như dưới đây:

số dư int[5] = {15, 20, 25, 30, 35};

Số lượng trị giá trong dấu ngoặc kép {} ko được lớn hơn số phần tử được khai báo trong dấu ngoặc vuông [].

Nếu bạn ko khai báo kích thước mảng thì mảng chỉ đủ lớn để chứa các trị giá đã khởi tạo. Vì vậy, nếu bạn viết như dưới đây, bạn sẽ vẫn thu được mảng tương tự như trên:

số dư int[] = {15, 20, 25, 30, 35};

Bạn có thể tạo mảng tương tự như bạn đã làm trong ví dụ trước.

sự thăng bằng[4] = 35;

Câu lệnh trên gán phần tử thứ 5 của mảng với trị giá 35. Tất cả các mảng đều có chỉ số (index) trước hết là 0, đây được gọi là chỉ số cơ sở và phần tử cuối cùng của mảng có chỉ số. bằng kích thước của mảng trừ đi 1. Đây là trình diễn đồ họa của chuỗi được khai báo ở trên thông qua chỉ mục:

01234balance1520253035

Truy cập các phần tử mảng trong C / C ++

Một mảng được truy cập bằng cách lập chỉ mục trong tên của mảng. Đây là một cách để truy cập trị giá của mảng:

int hocphi = hocphik60[55];

Câu lệnh trên nhận phần tử thứ 56 của mảng và gán trị giá này cho biến hocphi. Đây là một ví dụ về cách sử dụng với tất cả các mô tả ở trên:

#bao gồm sử dụng ko gian tên std; #bao gồm sử dụng std :: setw; int main () {int n[10]; // n là tổng của 10 số nguyên // tạo các phần tử của n là 0 for (int i = 0; i <10; i ++) {n[i] = i + 100; // trị giá đặt là + 100} cout << “Nhap thu:” << setw (13) << “Trị giá là:” << endl; // hiển thị trị giá của từng for (int j = 0; j <10; j ++) {cout << setw (7) << j << setw (13) << n[j] << endl; } trả về 0; }

Chạy chương trình C / C ++ ở trên sẽ cho kết quả sau:

Kết quả truy cập các phần tử mảng trong C / C ++

Thông tin cụ thể về mảng trong C / C ++

Mảng là một phần rất quan trọng của tiếng nói C / C ++. Dưới đây là các khái niệm quan trọng liên quan tới một mảng cụ thể được trình diễn rõ ràng hơn cho các lập trình viên C / C ++:

Khái niệm

Mảng đa chiều trong C / C ++

C / C ++ hỗ trợ mảng đa chiều. Dạng đơn giản nhất của mảng này là mảng hai chiều

Con trỏ tới một mảng trong C / C ++

Bạn có thể trỏ tới phần tử trước hết của mảng chỉ bằng cách chỉ định tên mảng, ko phải chỉ mục.

Đọc thêm: Miếng dán ppf iphone 12 pro max

Truyền mảng cho công dụng làm thông số trong C / C ++

Bạn có thể chuyển một con trỏ hàm tới một mảng bằng cách chỉ định tên mảng thay vì chỉ mục

Trả về mảng từ hàm trong C / C ++

C / C ++ cho phép một hàm trả về một mảng

Mảng đa chiều trong C ++

C ++ hỗ trợ mảng nhiều chiều. Đây là một mẫu chung về khai báo mảng nhiều chiều:

kieu_du_lieu name_mang[kich_co_1][kich_co_2]…[kich_co_N];

Ví dụ, khai báo sau tạo một mảng 3 chiều các số nguyên: 5. 10. 4:

int school[5][10][4];

Mảng hai chiều trong C ++

Dạng đơn giản nhất của mảng nhiều chiều là mảng hai chiều. Mảng hai chiều về thực chất là một danh sách các mảng một chiều. Để khai báo mảng số nguyên hai chiều có kích thước x, y, bạn nên viết như sau:

kieu_du_lieu name_mang [ x ][ y ];

Ở đây, type_du_lieu có thể là bất kỳ kiểu dữ liệu hợp thức nào và name_carry sẽ là mã định danh C ++ hợp thức.

Mảng hai chiều có thể giống như một bảng có x hàng và y cột. Mảng hai chiều a chứa 3 hàng và 4 cột có thể được hiển thị như sau:

Mảng hai chiều trong C ++

Do đó, mỗi phần tử trong mảng a được xác định bằng một tên phần tử trong mẫu a[i][j]trong đó a là tên của mảng và i và j là các chỉ số con – chỉ số xác định duy nhất từng phần tử trong a.

Khởi tạo mảng hai chiều trong C ++

Mảng nhiều chiều có thể được khởi tạo bằng cách chỉ định các trị giá trong dấu ngoặc vuông cho mỗi hàng. Tiếp theo là một hàng có 3 hàng và mỗi hàng gồm 4 cột.

int a[3][4] = {{0, 1, 2, 3}, / * khởi tạo trị giá hàng 0 * / {4, 5, 6, 7}, / * khởi tạo trị giá có trị giá 0 * / {4, 5, 6 , 7}, / * là 1 * / {8, 9, 10, 11} / * lúc tạo trị giá cho một hàng, nó chỉ có thể là 2 * /};

Các dấu ngoặc nhọn, nhưng chỉ các hàng trị giá, là tùy ý. Khởi tạo sau tương đương với ví dụ trên:

int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};

Truy cập các phần tử của mảng hai chiều trong C ++

Các phần tử mảng hai chiều được truy cập bằng cách sử dụng các chỉ số, ví dụ: chỉ số hàng và cột. Ví dụ:

int val = a[2][3];

Lệnh trên sẽ truy cập phần tử thứ 4 từ hàng thứ 3 của mảng. Bạn có thể rà soát kỹ nó trong sơ đồ trên. Hiện giờ hãy xem ví dụ bên dưới, chúng tôi đã sử dụng các vòng lặp lồng nhau để xử lý một mảng hai chiều:

bao gồm sử dụng ko gian tên std; int main () {// với 5 hàng và 2 cot. int a[5][2] = {{0,0}, {1,2}, {2,4}, {3,6}, {4,8}}; // hiển thị trị giá của các phần tử trong for (int i = 0; i <5; i ++) for (int j = 0; j <2; j ++) {cout << “Trị giá của a[” << i << “][” << j << “] la: “; cout << a[i][j]<< endl; } trả về 0; }

Chạy chương trình C ++ trên sẽ cho kết quả sau:

Truy cập các phần tử của mảng hai chiều trong C ++

Xem thêm: Tải video từ facebook về điện thoại android

Như đã giảng giải ở trên, bạn có thể có mảng với bất kỳ số kích thước nào, nhưng hồ hết các mảng bạn tạo sẽ là một hoặc hai chiều.

Con trỏ tới một mảng trong C ++

Có thể bạn sẽ ko hiểu chương này cho tới lúc độc giả qua chương về Con trỏ trong C ++.

Vì vậy, giả sử bạn đã biết điều gì đó về con trỏ trong C ++, hãy mở đầu: Tên mảng là một con trỏ hằng tới phần tử trước hết của mảng. Vì vậy, trong khai báo:

đôi phithuebao[50];

phithuebao là một con trỏ tới & phithuebao[0], là địa chỉ của phần tử trước hết của mảng phithuebao. Do đó, chương trình sau sẽ gán cho p địa chỉ của phần tử trước hết của phithuebao:

gấp đôi * p; đôi phithuebao[10]; p = phithuebao;

Sử dụng tên mảng làm con trỏ hằng và trái lại là hợp pháp. Do đó, * (phithuebao + 4) là cách chính thức để truy cập dữ liệu tại phithuebao[4].

Lúc bạn lưu trữ địa chỉ của phần tử trước hết trong p, bạn có thể truy cập các phần tử mảng bằng cách sử dụng * p, * (p + 1), * (p + 2),… ​​Đây là một ví dụ chỉ cho tất cả các khái niệm được nói đến ở trên:

Xem thêm thông tin hay:  Nữ Sinh Năm 2008 Mệnh Gì

#bao gồm sử dụng ko gian tên std; int main () {// mang sau 5 phần tử. đôi phithuebao[5] = {1000.0, 2.0, 3.4, 17.0, 50.0}; gấp đôi * p; p = phithuebao; // hiển thị trị giá của các phần tử trong cout << “Hiển thị trị giá bằng tro!” << endl; for (int i = 0; i <5; i ++) {cout << “Trị giá của * (p +” << i << “) là:“; cout << * (p + i) << endl; } cout << “Vị trí của trang web được mở cho công chúng!" << endl; for (int i = 0; i <5; i ++) {cout << “* Trị giá của (phithuebao +” << i << “) là:“; cout << * (phithuebao + i) << endl; } trả về 0; }

Chạy chương trình C ++ trên sẽ cho kết quả sau:

Con trỏ đến một mảng trong C ++

Trong ví dụ trên, p là một con trỏ để double, có tức là nó có thể chứa địa chỉ của một biến kiểu double. Lúc chúng ta có địa chỉ trong p, thì * p sẽ làm cho trị giá có sẵn tại địa chỉ được lưu trong p, như chúng ta đã trình diễn trong ví dụ trên.

Truyền mảng làm thông số hàm trong C ++

Trả về mảng từ hàm trong C ++

C ++ ko cho phép bạn trả về toàn thể mảng làm đối số cho một hàm. Tuy nhiên, bạn có thể trả về một con trỏ cho một mảng bằng cách chỉ định tên mảng chứ ko phải chỉ mục. Bạn sẽ tìm hiểu về con trỏ trong chương tiếp theo, vì vậy bạn có thể bỏ qua chương này cho tới lúc bạn hiểu khái niệm về Con trỏ trong C ++.

Nếu bạn muốn trả về mảng một chiều từ một hàm, bạn sẽ phải khai báo một hàm trả về một con trỏ như trong ví dụ sau:

int * tenHam () {. . . }

Điểm thứ hai cần nhớ là C ++ ko hỗ trợ trả về địa chỉ của một biến cục bộ ra bên ngoài hàm, vì vậy bạn sẽ phải xác định biến cục bộ là một biến Static.

Hiện giờ, giả sử hàm sau sẽ tạo ra 10 số tình cờ và trả về chúng bằng cách sử dụng một mảng và gọi hàm này như sau:

#bao gồm #bao gồm #bao gồm / * lấy thư viện cho ham srand, rand * / using namespace std; // Xác định khái niệm của hàm tạo và rà soát các biến. int * soNgauNhien () {static int r[10]; srand ((ko dấu) time (NULL)); for (int i = 0; i <10; ++ i) {r[i] = rand (); cout << r[i] << endl; } trả về r; } // hàm main gọi hàm trên. int main () {// an tro là một số nguyên. int * p; p = soNgauNhien (); for (int i = 0; i <10; i ++) {cout << “Trị giá của * (p +” << i << “) là:“; cout << * (p + i) << endl; } trả về 0; }

Chạy chương trình C ++ trên sẽ cho kết quả sau:

Trả về mảng từ hàm trong C ++

Theo Tutorialspoint

Bài trước: Số trong C ++

Bài tiếp theo: Chuỗi (String) trong C / C ++

Đọc thêm: 3 Cách cập nhật Driver Card màn hình vô cùng đơn giản

sự thăng bằng[4] = 30;


Thông tin thêm

Mảng (Array) Trong C/C++ | Hỏi Gì?

Mảng là một kiểu cấu trúc dữ liệu trong tiếng nói lập trình C / C ++ lưu trữ một tập trung tuần tự các phần tử cùng kiểu với độ dài cố định. Mảng thường được sử dụng để lưu trữ các tập trung dữ liệu, nhưng chúng cũng hữu ích lúc lưu trữ một tập trung các biến cùng kiểu.

Thay vì khai báo các biến một cách lẻ tẻ như bien1, bien1,… và bien99, bạn có thể khai báo một mảng trị giá như bien[0]bien[1] và… bien[99] để đại diện cho các trị giá riêng lẻ. Một phần tử cụ thể của mảng có thể được truy cập thông qua chỉ mục.

Bạn đang xem: khai báo mảng

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

Khai báo mảng trong C / C ++

Để khai báo một mảng trong C / C ++, bạn chỉ định kiểu của phần tử và số phần tử theo yêu cầu của biến như sau:

Kieu Ten_manga [ Kich_co_mang ];

Đây là mảng một chiều. Size_co_manage phải là một số nguyên lớn hơn 0 và Kiều phải hợp thức trong tiếng nói C / C ++. Ví dụ, để khai báo số dư mảng có 10 phần tử kiểu double, hãy sử dụng câu lệnh sau:

thăng bằng char[10];

Khởi tạo mảng trong C / C ++

Bạn có thể khởi tạo mảng trong C / C ++ hoặc từng phần tử hoặc sử dụng một câu lệnh như dưới đây:

số dư int[5] = {15, 20, 25, 30, 35};

Số lượng trị giá trong dấu ngoặc kép {} ko được lớn hơn số phần tử được khai báo trong dấu ngoặc vuông [].

Nếu bạn ko khai báo kích thước mảng thì mảng chỉ đủ lớn để chứa các trị giá đã khởi tạo. Vì vậy, nếu bạn viết như dưới đây, bạn sẽ vẫn thu được mảng tương tự như trên:

số dư int[] = {15, 20, 25, 30, 35};

Bạn có thể tạo mảng tương tự như bạn đã làm trong ví dụ trước.

sự thăng bằng[4] = 35;

Câu lệnh trên gán phần tử thứ 5 của mảng với trị giá 35. Tất cả các mảng đều có chỉ số (index) trước hết là 0, đây được gọi là chỉ số cơ sở và phần tử cuối cùng của mảng có chỉ số. bằng kích thước của mảng trừ đi 1. Đây là trình diễn đồ họa của chuỗi được khai báo ở trên thông qua chỉ mục:

01234balance1520253035

Truy cập các phần tử mảng trong C / C ++

Một mảng được truy cập bằng cách lập chỉ mục trong tên của mảng. Đây là một cách để truy cập trị giá của mảng:

int hocphi = hocphik60[55];

Câu lệnh trên nhận phần tử thứ 56 của mảng và gán trị giá này cho biến hocphi. Đây là một ví dụ về cách sử dụng với tất cả các mô tả ở trên:

#bao gồm sử dụng ko gian tên std; #bao gồm sử dụng std :: setw; int main () {int n[10]; // n là tổng của 10 số nguyên // tạo các phần tử của n là 0 for (int i = 0; i <10; i ++) {n[i] = i + 100; // trị giá đặt là + 100} cout << “Nhap thu:” << setw (13) << “Trị giá là:” << endl; // hiển thị trị giá của từng for (int j = 0; j <10; j ++) {cout << setw (7) << j << setw (13) << n[j] << endl; } trả về 0; }

Chạy chương trình C / C ++ ở trên sẽ cho kết quả sau:

Kết quả truy cập các phần tử mảng trong C / C ++

Thông tin cụ thể về mảng trong C / C ++

Mảng là một phần rất quan trọng của tiếng nói C / C ++. Dưới đây là các khái niệm quan trọng liên quan tới một mảng cụ thể được trình diễn rõ ràng hơn cho các lập trình viên C / C ++:

Khái niệm

Mảng đa chiều trong C / C ++

C / C ++ hỗ trợ mảng đa chiều. Dạng đơn giản nhất của mảng này là mảng hai chiều

Con trỏ tới một mảng trong C / C ++

Bạn có thể trỏ tới phần tử trước hết của mảng chỉ bằng cách chỉ định tên mảng, ko phải chỉ mục.

Đọc thêm: Miếng dán ppf iphone 12 pro max

Truyền mảng cho công dụng làm thông số trong C / C ++

Bạn có thể chuyển một con trỏ hàm tới một mảng bằng cách chỉ định tên mảng thay vì chỉ mục

Trả về mảng từ hàm trong C / C ++

C / C ++ cho phép một hàm trả về một mảng

Mảng đa chiều trong C ++

C ++ hỗ trợ mảng nhiều chiều. Đây là một mẫu chung về khai báo mảng nhiều chiều:

kieu_du_lieu name_mang[kich_co_1][kich_co_2]…[kich_co_N];

Ví dụ, khai báo sau tạo một mảng 3 chiều các số nguyên: 5. 10. 4:

int school[5][10][4];

Mảng hai chiều trong C ++

Dạng đơn giản nhất của mảng nhiều chiều là mảng hai chiều. Mảng hai chiều về thực chất là một danh sách các mảng một chiều. Để khai báo mảng số nguyên hai chiều có kích thước x, y, bạn nên viết như sau:

kieu_du_lieu name_mang [ x ][ y ];

Ở đây, type_du_lieu có thể là bất kỳ kiểu dữ liệu hợp thức nào và name_carry sẽ là mã định danh C ++ hợp thức.

Mảng hai chiều có thể giống như một bảng có x hàng và y cột. Mảng hai chiều a chứa 3 hàng và 4 cột có thể được hiển thị như sau:

Mảng hai chiều trong C ++

Do đó, mỗi phần tử trong mảng a được xác định bằng một tên phần tử trong mẫu a[i][j]trong đó a là tên của mảng và i và j là các chỉ số con - chỉ số xác định duy nhất từng phần tử trong a.

Khởi tạo mảng hai chiều trong C ++

Mảng nhiều chiều có thể được khởi tạo bằng cách chỉ định các trị giá trong dấu ngoặc vuông cho mỗi hàng. Tiếp theo là một hàng có 3 hàng và mỗi hàng gồm 4 cột.

int a[3][4] = {{0, 1, 2, 3}, / * khởi tạo trị giá hàng 0 * / {4, 5, 6, 7}, / * khởi tạo trị giá có trị giá 0 * / {4, 5, 6 , 7}, / * là 1 * / {8, 9, 10, 11} / * lúc tạo trị giá cho một hàng, nó chỉ có thể là 2 * /};

Các dấu ngoặc nhọn, nhưng chỉ các hàng trị giá, là tùy ý. Khởi tạo sau tương đương với ví dụ trên:

int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};

Truy cập các phần tử của mảng hai chiều trong C ++

Các phần tử mảng hai chiều được truy cập bằng cách sử dụng các chỉ số, ví dụ: chỉ số hàng và cột. Ví dụ:

int val = a[2][3];

Lệnh trên sẽ truy cập phần tử thứ 4 từ hàng thứ 3 của mảng. Bạn có thể rà soát kỹ nó trong sơ đồ trên. Hiện giờ hãy xem ví dụ bên dưới, chúng tôi đã sử dụng các vòng lặp lồng nhau để xử lý một mảng hai chiều:

bao gồm sử dụng ko gian tên std; int main () {// với 5 hàng và 2 cot. int a[5][2] = {{0,0}, {1,2}, {2,4}, {3,6}, {4,8}}; // hiển thị trị giá của các phần tử trong for (int i = 0; i <5; i ++) for (int j = 0; j <2; j ++) {cout << “Trị giá của a[” << i << “][” << j << “] la: “; cout << a[i][j]<< endl; } trả về 0; }

Chạy chương trình C ++ trên sẽ cho kết quả sau:

Truy cập các phần tử của mảng hai chiều trong C ++

Xem thêm: Tải video từ facebook về điện thoại android

Như đã giảng giải ở trên, bạn có thể có mảng với bất kỳ số kích thước nào, nhưng hồ hết các mảng bạn tạo sẽ là một hoặc hai chiều.

Con trỏ tới một mảng trong C ++

Có thể bạn sẽ ko hiểu chương này cho tới lúc độc giả qua chương về Con trỏ trong C ++.

Vì vậy, giả sử bạn đã biết điều gì đó về con trỏ trong C ++, hãy mở đầu: Tên mảng là một con trỏ hằng tới phần tử trước hết của mảng. Vì vậy, trong khai báo:

đôi phithuebao[50];

phithuebao là một con trỏ tới & phithuebao[0], là địa chỉ của phần tử trước hết của mảng phithuebao. Do đó, chương trình sau sẽ gán cho p địa chỉ của phần tử trước hết của phithuebao:

gấp đôi * p; đôi phithuebao[10]; p = phithuebao;

Sử dụng tên mảng làm con trỏ hằng và trái lại là hợp pháp. Do đó, * (phithuebao + 4) là cách chính thức để truy cập dữ liệu tại phithuebao[4].

Lúc bạn lưu trữ địa chỉ của phần tử trước hết trong p, bạn có thể truy cập các phần tử mảng bằng cách sử dụng * p, * (p + 1), * (p + 2),… ​​Đây là một ví dụ chỉ cho tất cả các khái niệm được nói đến ở trên:

#bao gồm sử dụng ko gian tên std; int main () {// mang sau 5 phần tử. đôi phithuebao[5] = {1000.0, 2.0, 3.4, 17.0, 50.0}; gấp đôi * p; p = phithuebao; // hiển thị trị giá của các phần tử trong cout << “Hiển thị trị giá bằng tro!” << endl; for (int i = 0; i <5; i ++) {cout << “Trị giá của * (p +” << i << “) là:“; cout << * (p + i) << endl; } cout << “Vị trí của trang web được mở cho công chúng!" << endl; for (int i = 0; i <5; i ++) {cout << “* Trị giá của (phithuebao +” << i << “) là:“; cout << * (phithuebao + i) << endl; } trả về 0; }

Chạy chương trình C ++ trên sẽ cho kết quả sau:

Con trỏ đến một mảng trong C ++

Trong ví dụ trên, p là một con trỏ để double, có tức là nó có thể chứa địa chỉ của một biến kiểu double. Lúc chúng ta có địa chỉ trong p, thì * p sẽ làm cho trị giá có sẵn tại địa chỉ được lưu trong p, như chúng ta đã trình diễn trong ví dụ trên.

Truyền mảng làm thông số hàm trong C ++

Trả về mảng từ hàm trong C ++

C ++ ko cho phép bạn trả về toàn thể mảng làm đối số cho một hàm. Tuy nhiên, bạn có thể trả về một con trỏ cho một mảng bằng cách chỉ định tên mảng chứ ko phải chỉ mục. Bạn sẽ tìm hiểu về con trỏ trong chương tiếp theo, vì vậy bạn có thể bỏ qua chương này cho tới lúc bạn hiểu khái niệm về Con trỏ trong C ++.

Nếu bạn muốn trả về mảng một chiều từ một hàm, bạn sẽ phải khai báo một hàm trả về một con trỏ như trong ví dụ sau:

int * tenHam () {. . . }

Điểm thứ hai cần nhớ là C ++ ko hỗ trợ trả về địa chỉ của một biến cục bộ ra bên ngoài hàm, vì vậy bạn sẽ phải xác định biến cục bộ là một biến Static.

Hiện giờ, giả sử hàm sau sẽ tạo ra 10 số tình cờ và trả về chúng bằng cách sử dụng một mảng và gọi hàm này như sau:

#bao gồm #bao gồm #bao gồm / * lấy thư viện cho ham srand, rand * / using namespace std; // Xác định khái niệm của hàm tạo và rà soát các biến. int * soNgauNhien () {static int r[10]; srand ((ko dấu) time (NULL)); for (int i = 0; i <10; ++ i) {r[i] = rand (); cout << r[i] << endl; } trả về r; } // hàm main gọi hàm trên. int main () {// an tro là một số nguyên. int * p; p = soNgauNhien (); for (int i = 0; i <10; i ++) {cout << “Trị giá của * (p +” << i << “) là:“; cout << * (p + i) << endl; } trả về 0; }

Chạy chương trình C ++ trên sẽ cho kết quả sau:

Trả về mảng từ hàm trong C ++

Theo Tutorialspoint

Bài trước: Số trong C ++

Bài tiếp theo: Chuỗi (String) trong C / C ++

Đọc thêm: 3 Cách cập nhật Driver Card màn hình vô cùng đơn giản

sự thăng bằng[4] = 30;


Mảng là một kiểu cấu trúc dữ liệu trong tiếng nói lập trình C / C ++ lưu trữ một tập trung tuần tự các phần tử cùng kiểu với độ dài cố định. Mảng thường được sử dụng để lưu trữ các tập trung dữ liệu, nhưng chúng cũng hữu ích lúc lưu trữ một tập trung các biến cùng kiểu.

Thay vì khai báo các biến một cách lẻ tẻ như bien1, bien1,… và bien99, bạn có thể khai báo một mảng trị giá như bien[0]bien[1] và… bien[99] để đại diện cho các trị giá riêng lẻ. Một phần tử cụ thể của mảng có thể được truy cập thông qua chỉ mục.

Bạn đang xem: khai báo mảng

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

Khai báo mảng trong C / C ++

Để khai báo một mảng trong C / C ++, bạn chỉ định kiểu của phần tử và số phần tử theo yêu cầu của biến như sau:

Kieu Ten_manga [ Kich_co_mang ];

Đây là mảng một chiều. Size_co_manage phải là một số nguyên lớn hơn 0 và Kiều phải hợp thức trong tiếng nói C / C ++. Ví dụ, để khai báo số dư mảng có 10 phần tử kiểu double, hãy sử dụng câu lệnh sau:

thăng bằng char[10];

Khởi tạo mảng trong C / C ++

Bạn có thể khởi tạo mảng trong C / C ++ hoặc từng phần tử hoặc sử dụng một câu lệnh như dưới đây:

số dư int[5] = {15, 20, 25, 30, 35};

Số lượng trị giá trong dấu ngoặc kép {} ko được lớn hơn số phần tử được khai báo trong dấu ngoặc vuông [].

Nếu bạn ko khai báo kích thước mảng thì mảng chỉ đủ lớn để chứa các trị giá đã khởi tạo. Vì vậy, nếu bạn viết như dưới đây, bạn sẽ vẫn thu được mảng tương tự như trên:

số dư int[] = {15, 20, 25, 30, 35};

Bạn có thể tạo mảng tương tự như bạn đã làm trong ví dụ trước.

sự thăng bằng[4] = 35;

Câu lệnh trên gán phần tử thứ 5 của mảng với trị giá 35. Tất cả các mảng đều có chỉ số (index) trước hết là 0, đây được gọi là chỉ số cơ sở và phần tử cuối cùng của mảng có chỉ số. bằng kích thước của mảng trừ đi 1. Đây là trình diễn đồ họa của chuỗi được khai báo ở trên thông qua chỉ mục:

01234balance1520253035

Truy cập các phần tử mảng trong C / C ++

Một mảng được truy cập bằng cách lập chỉ mục trong tên của mảng. Đây là một cách để truy cập trị giá của mảng:

int hocphi = hocphik60[55];

Câu lệnh trên nhận phần tử thứ 56 của mảng và gán trị giá này cho biến hocphi. Đây là một ví dụ về cách sử dụng với tất cả các mô tả ở trên:

#bao gồm sử dụng ko gian tên std; #bao gồm sử dụng std :: setw; int main () {int n[10]; // n là tổng của 10 số nguyên // tạo các phần tử của n là 0 for (int i = 0; i <10; i ++) {n[i] = i + 100; // trị giá đặt là + 100} cout << “Nhap thu:” << setw (13) << “Trị giá là:” << endl; // hiển thị trị giá của từng for (int j = 0; j <10; j ++) {cout << setw (7) << j << setw (13) << n[j] << endl; } trả về 0; }

Chạy chương trình C / C ++ ở trên sẽ cho kết quả sau:

Kết quả truy cập các phần tử mảng trong C / C ++

Thông tin cụ thể về mảng trong C / C ++

Mảng là một phần rất quan trọng của tiếng nói C / C ++. Dưới đây là các khái niệm quan trọng liên quan tới một mảng cụ thể được trình diễn rõ ràng hơn cho các lập trình viên C / C ++:

Khái niệm

Mảng đa chiều trong C / C ++

C / C ++ hỗ trợ mảng đa chiều. Dạng đơn giản nhất của mảng này là mảng hai chiều

Con trỏ tới một mảng trong C / C ++

Bạn có thể trỏ tới phần tử trước hết của mảng chỉ bằng cách chỉ định tên mảng, ko phải chỉ mục.

Đọc thêm: Miếng dán ppf iphone 12 pro max

Truyền mảng cho công dụng làm thông số trong C / C ++

Bạn có thể chuyển một con trỏ hàm tới một mảng bằng cách chỉ định tên mảng thay vì chỉ mục

Trả về mảng từ hàm trong C / C ++

C / C ++ cho phép một hàm trả về một mảng

Mảng đa chiều trong C ++

C ++ hỗ trợ mảng nhiều chiều. Đây là một mẫu chung về khai báo mảng nhiều chiều:

kieu_du_lieu name_mang[kich_co_1][kich_co_2]…[kich_co_N];

Ví dụ, khai báo sau tạo một mảng 3 chiều các số nguyên: 5. 10. 4:

int school[5][10][4];

Mảng hai chiều trong C ++

Dạng đơn giản nhất của mảng nhiều chiều là mảng hai chiều. Mảng hai chiều về thực chất là một danh sách các mảng một chiều. Để khai báo mảng số nguyên hai chiều có kích thước x, y, bạn nên viết như sau:

kieu_du_lieu name_mang [ x ][ y ];

Ở đây, type_du_lieu có thể là bất kỳ kiểu dữ liệu hợp thức nào và name_carry sẽ là mã định danh C ++ hợp thức.

Mảng hai chiều có thể giống như một bảng có x hàng và y cột. Mảng hai chiều a chứa 3 hàng và 4 cột có thể được hiển thị như sau:

Mảng hai chiều trong C ++

Do đó, mỗi phần tử trong mảng a được xác định bằng một tên phần tử trong mẫu a[i][j]trong đó a là tên của mảng và i và j là các chỉ số con – chỉ số xác định duy nhất từng phần tử trong a.

Khởi tạo mảng hai chiều trong C ++

Mảng nhiều chiều có thể được khởi tạo bằng cách chỉ định các trị giá trong dấu ngoặc vuông cho mỗi hàng. Tiếp theo là một hàng có 3 hàng và mỗi hàng gồm 4 cột.

int a[3][4] = {{0, 1, 2, 3}, / * khởi tạo trị giá hàng 0 * / {4, 5, 6, 7}, / * khởi tạo trị giá có trị giá 0 * / {4, 5, 6 , 7}, / * là 1 * / {8, 9, 10, 11} / * lúc tạo trị giá cho một hàng, nó chỉ có thể là 2 * /};

Các dấu ngoặc nhọn, nhưng chỉ các hàng trị giá, là tùy ý. Khởi tạo sau tương đương với ví dụ trên:

int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};

Truy cập các phần tử của mảng hai chiều trong C ++

Các phần tử mảng hai chiều được truy cập bằng cách sử dụng các chỉ số, ví dụ: chỉ số hàng và cột. Ví dụ:

int val = a[2][3];

Lệnh trên sẽ truy cập phần tử thứ 4 từ hàng thứ 3 của mảng. Bạn có thể rà soát kỹ nó trong sơ đồ trên. Hiện giờ hãy xem ví dụ bên dưới, chúng tôi đã sử dụng các vòng lặp lồng nhau để xử lý một mảng hai chiều:

bao gồm sử dụng ko gian tên std; int main () {// với 5 hàng và 2 cot. int a[5][2] = {{0,0}, {1,2}, {2,4}, {3,6}, {4,8}}; // hiển thị trị giá của các phần tử trong for (int i = 0; i <5; i ++) for (int j = 0; j <2; j ++) {cout << “Trị giá của a[” << i << “][” << j << “] la: “; cout << a[i][j]<< endl; } trả về 0; }

Chạy chương trình C ++ trên sẽ cho kết quả sau:

Truy cập các phần tử của mảng hai chiều trong C ++

Xem thêm: Tải video từ facebook về điện thoại android

Như đã giảng giải ở trên, bạn có thể có mảng với bất kỳ số kích thước nào, nhưng hồ hết các mảng bạn tạo sẽ là một hoặc hai chiều.

Con trỏ tới một mảng trong C ++

Có thể bạn sẽ ko hiểu chương này cho tới lúc độc giả qua chương về Con trỏ trong C ++.

Vì vậy, giả sử bạn đã biết điều gì đó về con trỏ trong C ++, hãy mở đầu: Tên mảng là một con trỏ hằng tới phần tử trước hết của mảng. Vì vậy, trong khai báo:

đôi phithuebao[50];

phithuebao là một con trỏ tới & phithuebao[0], là địa chỉ của phần tử trước hết của mảng phithuebao. Do đó, chương trình sau sẽ gán cho p địa chỉ của phần tử trước hết của phithuebao:

gấp đôi * p; đôi phithuebao[10]; p = phithuebao;

Sử dụng tên mảng làm con trỏ hằng và trái lại là hợp pháp. Do đó, * (phithuebao + 4) là cách chính thức để truy cập dữ liệu tại phithuebao[4].

Lúc bạn lưu trữ địa chỉ của phần tử trước hết trong p, bạn có thể truy cập các phần tử mảng bằng cách sử dụng * p, * (p + 1), * (p + 2),… ​​Đây là một ví dụ chỉ cho tất cả các khái niệm được nói đến ở trên:

#bao gồm sử dụng ko gian tên std; int main () {// mang sau 5 phần tử. đôi phithuebao[5] = {1000.0, 2.0, 3.4, 17.0, 50.0}; gấp đôi * p; p = phithuebao; // hiển thị trị giá của các phần tử trong cout << “Hiển thị trị giá bằng tro!” << endl; for (int i = 0; i <5; i ++) {cout << “Trị giá của * (p +” << i << “) là:“; cout << * (p + i) << endl; } cout << “Vị trí của trang web được mở cho công chúng!" << endl; for (int i = 0; i <5; i ++) {cout << “* Trị giá của (phithuebao +” << i << “) là:“; cout << * (phithuebao + i) << endl; } trả về 0; }

Chạy chương trình C ++ trên sẽ cho kết quả sau:

Con trỏ đến một mảng trong C ++

Trong ví dụ trên, p là một con trỏ để double, có tức là nó có thể chứa địa chỉ của một biến kiểu double. Lúc chúng ta có địa chỉ trong p, thì * p sẽ làm cho trị giá có sẵn tại địa chỉ được lưu trong p, như chúng ta đã trình diễn trong ví dụ trên.

Truyền mảng làm thông số hàm trong C ++

Trả về mảng từ hàm trong C ++

C ++ ko cho phép bạn trả về toàn thể mảng làm đối số cho một hàm. Tuy nhiên, bạn có thể trả về một con trỏ cho một mảng bằng cách chỉ định tên mảng chứ ko phải chỉ mục. Bạn sẽ tìm hiểu về con trỏ trong chương tiếp theo, vì vậy bạn có thể bỏ qua chương này cho tới lúc bạn hiểu khái niệm về Con trỏ trong C ++.

Nếu bạn muốn trả về mảng một chiều từ một hàm, bạn sẽ phải khai báo một hàm trả về một con trỏ như trong ví dụ sau:

int * tenHam () {. . . }

Điểm thứ hai cần nhớ là C ++ ko hỗ trợ trả về địa chỉ của một biến cục bộ ra bên ngoài hàm, vì vậy bạn sẽ phải xác định biến cục bộ là một biến Static.

Hiện giờ, giả sử hàm sau sẽ tạo ra 10 số tình cờ và trả về chúng bằng cách sử dụng một mảng và gọi hàm này như sau:

#bao gồm #bao gồm #bao gồm / * lấy thư viện cho ham srand, rand * / using namespace std; // Xác định khái niệm của hàm tạo và rà soát các biến. int * soNgauNhien () {static int r[10]; srand ((ko dấu) time (NULL)); for (int i = 0; i <10; ++ i) {r[i] = rand (); cout << r[i] << endl; } trả về r; } // hàm main gọi hàm trên. int main () {// an tro là một số nguyên. int * p; p = soNgauNhien (); for (int i = 0; i <10; i ++) {cout << “Trị giá của * (p +” << i << “) là:“; cout << * (p + i) << endl; } trả về 0; }

Chạy chương trình C ++ trên sẽ cho kết quả sau:

Trả về mảng từ hàm trong C ++

Theo Tutorialspoint

Bài trước: Số trong C ++

Bài tiếp theo: Chuỗi (String) trong C / C ++

Đọc thêm: 3 Cách cập nhật Driver Card màn hình vô cùng đơn giản

sự thăng bằng[4] = 30;

#Mảng #Array #Trong #Hỏi #Gì

[rule_3_plain]

#Mảng #Array #Trong #Hỏi #Gì

[rule_1_plain]

#Mảng #Array #Trong #Hỏi #Gì

[rule_2_plain]

#Mảng #Array #Trong #Hỏi #Gì

[rule_2_plain]

#Mảng #Array #Trong #Hỏi #Gì

[rule_3_plain]

#Mảng #Array #Trong #Hỏi #Gì

[rule_1_plain]

Nguồn: besttaichinh.com

#Mảng #Array #Trong #Hỏi #Gì

Best Tài Chính
Best Tài Chínhhttp://besttaichinh.com
Là người sáng lập Website BestTaiChinh.Com - Với nhiều năm kinh nghiệm trong lĩnh vực tài chính ngân hàng, Bitcoin, chứng khoáng ... sẽ sử dụng các kiến thức được tổng hợp và đúc kết để cung cấp đến các bạn những thông tin chính xác, tư vấn hỗ trợ xử lý các dịch vụ tài chính, ngân hàng, bảo hiểm, đầu tư hiệu quả nhất!

Similar Articles

Comments

BÌNH LUẬN

Vui lòng nhập bình luận của bạn
Vui lòng nhập tên của bạn ở đây

Advertisment

Phổ biến nhất