Lấy kích thước của mảng trong hàm C++

Không giống như các ngôn ngữ khác, nơi mảng được xác định bởi địa chỉ bộ nhớ bắt đầu, kiểu dữ liệu và độ dài của mảng, trong C, mảng là một con trỏ tương tự tới một vị trí bộ nhớ là địa chỉ bộ nhớ bắt đầu. Chúng ta cần sử dụng toán tử sizeof trong C/C++ để đạt được điều này

Ý tưởng chính để lấy độ dài của một mảng trong C hoặc C++ là

int length = sizeof(array)/sizeof();

// length = total size of array / size of an array element

Đối với mảng Số nguyên, chúng ta có thể tìm thấy độ dài như sau

int length = sizeof(array)/sizeof(int);

Điều này cũng hoạt động với mảng các đối tượng do người dùng xác định (trong C++) và struct (trong C và C++). Chúng tôi sẽ chứng minh điều này trên các ví dụ sau

  • Mảng số nguyên
  • Mảng ký tự
  • Mảng cấu trúc
  • Mảng đối tượng do người dùng định nghĩa (trong C++)

Chúng ta sẽ đi qua từng ví dụ một cách chi tiết

Mảng số nguyên

Trong ví dụ này, chúng ta sẽ hiểu cách lấy độ dài của một mảng các số nguyên. Chúng tôi đã định nghĩa một mảng các số nguyên như thế này

int array[] = {1, 3, 2};

Theo đó, chúng tôi tìm thấy độ dài của mảng như sau

int length = sizeof(array) / sizeof(int);

Sau đây là ví dụ C hoàn chỉnh

// Part of OpenGenus IQ
#include
int main() 
{
    // define sample array	
	int array[] = {1, 3, 2};
	// get length of array as explained by OpenGenus
	int length = sizeof(array) / sizeof(int);
	// print length of array
	printf("Length of array is %d\n", length);
	return 0;
}

đầu ra

Length of array is 3

Mảng ký tự

Trong ví dụ này, chúng ta sẽ hiểu cách lấy độ dài của một mảng ký tự. Chúng tôi đã định nghĩa một mảng các ký tự như thế này

char array[] = {'o', 'p', 'e', 'n', 'g', 'e', 'n', 'u', 's'};

Theo đó, chúng tôi tìm thấy độ dài của mảng như sau

int length = sizeof(array) / sizeof(char);

Sau đây là ví dụ C hoàn chỉnh

________số 8

đầu ra

Length of array is 9

Mảng cấu trúc

Trong ví dụ này, chúng ta sẽ hiểu cách lấy độ dài của một mảng cấu trúc. Chúng tôi đã định nghĩa một cấu trúc như thế này

int length = sizeof(array)/sizeof(int);
0

Chúng tôi đã sử dụng cấu trúc trên để có được một mảng cấu trúc

int length = sizeof(array)/sizeof(int);
1

Theo đó, chúng tôi tìm thấy độ dài của mảng như sau

int length = sizeof(array)/sizeof(int);
2

Sau đây là ví dụ C hoàn chỉnh

int length = sizeof(array)/sizeof(int);
3

đầu ra

int length = sizeof(array)/sizeof(int);
4

Mảng đối tượng do người dùng định nghĩa trong C++

Trong ví dụ này, chúng ta sẽ hiểu cách lấy độ dài của một mảng các đối tượng do người dùng xác định. Chúng tôi đã định nghĩa một lớp do người dùng định nghĩa như thế này

int length = sizeof(array)/sizeof(int);
5

Chúng tôi đã sử dụng lớp trên để lấy một mảng các đối tượng do người dùng xác định

int length = sizeof(array)/sizeof(int);
6

Theo đó, chúng tôi tìm thấy độ dài của mảng như sau

int length = sizeof(array)/sizeof(int);
7

Sau đây là ví dụ C hoàn chỉnh

int length = sizeof(array)/sizeof(int);
8

đầu ra

int length = sizeof(array)/sizeof(int);
9

Với điều này, bạn hoàn toàn có thể lấy được độ dài của bất kỳ mảng nào trong C và C++ bằng cách sử dụng toán tử sizeof. Vui thích

Chương trình tính độ dài của mảng trong C sử dụng toán tử sizeof với các bước được giải thích. Hai ví dụ chương trình trình diễn sử dụng mảng int và mảng char

Hãy xem xét ví dụ về một mảng int được đưa ra dưới đây. Độ dài của mảng là 6, hay nói cách khác, số phần tử trong mảng int là 6. Đây là những gì chương trình c sẽ tính toán

mảng int[] = {2,4,6,8,9,4};

HỢP LÝ

  • Tính kích thước của mảng bằng toán tử sizeof e. g. kích thước của (mảng)
  • Tính toán kích thước của một giá trị int sử dụng sizeof(int)
  • Để lấy độ dài của mảng (số phần tử), hãy chia tổng kích thước của mảng cho kích thước của 1 int

Độ dài mảng = kích thước của mảng/kích thước của 1 int

GHI CHÚ. Kích thước của các loại dữ liệu thay đổi theo nền tảng. Bạn có thể xem ở đây kích thước của nhiều loại dữ liệu trong C với mã ví dụ

Chương trình tính độ dài mảng trong C

int array[] = {1, 3, 2};
0

Đầu ra.
Kích thước của mảng int. 24
Kích thước của 1 giá trị int. 4
Vậy độ dài của mảng là. 6

Hãy xem thêm một ví dụ về chương trình c để tính độ dài của mảng char

Ví dụ về độ dài của mảng char trong C

Trong chương trình dưới đây có 5 phần tử trong mảng char. Khi bạn chia nó với kích thước của một kiểu dữ liệu char ( 1 byte) thì kích thước của mảng sẽ là 5

Chúng ta có thể tính kích thước của mảng bên trong hàm không?

Bên trong hàm ar là một con trỏ nên toán tử sizeof sẽ trả về độ dài của một con trỏ. Cách duy nhất để tính toán nó là biến ar thành toàn cầu và hoặc thay đổi tên của nó. Cách dễ nhất để xác định độ dài là size(array_name)/(size_of(int) . Một điều khác bạn có thể làm là chuyển tính toán này vào hàm.

Làm cách nào để in kích thước mảng trong C?

Có thể tìm thấy một số phần tử có trong mảng bằng cách tính độ dài của mảng. .
BƯỚC 1. BẮT ĐẦU
BƯỚC 2. KHỞI TẠO mảng[] = {1, 2, 3, 4, 5}
BƯỚC 3. chiều dài = sizeof(arr)/sizeof(arr[0])
BƯỚC 4. IN "Số phần tử có trong mảng đã cho. " bằng cách gán độ dài
BƯỚC 5. TRẢ LẠI 0
BƯỚC 6. CHẤM DỨT

Chúng ta có thể lấy kích thước của mảng từ người dùng trong C không?

Trong C , không thể xác định mảng với kích thước do người dùng xác định theo cách này. Một số phương ngữ của C có các mảng có độ dài thay đổi, đáng chú ý là C99 (và GCC chấp nhận chúng. )