Đọc tất cả phần tử trong mảng C

code: int a[] = {1, 2, 3};

giả sử đây là 1 mảng không xác định phần tử làm sao ta có thể đọc ra tất cả các phần tử trong đó! Cảm ơn mọi người đã đọc!

Hi nghia.
Khoong co cach mnao ca.

Mảng trong C lúc nào cũng phải xác định số lượng phần tử nhe bạn. trong VD mà bạn đưa không phải là không xác định mà chẳng qua là xác định không tường mình thôi, khi compile code này compiler sẽ tự xác định số phần tử trong dấu {} và cấp phát tĩnh cho mảng a.

Để biết được kích thước của mảng bạn dùng sizeof(a) nhe, hàm này trả về kích thước mảng a tính theo đơn vị byte, vậy sizeof(a)/sizeof(int) bạn sẽ có được số phần tử mảng a

for (int idx = 0 ; idx < sizeof(a)/sizeof(int) ; idx++) 
{
    printf("a[%d] = %d\n", idx, a[idx]);
}
1 Like

Số phần tử trong mảng = sizeof(a) / sizeof(int)

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

Integer là 4 bytes
sizeof(a) => 12
sizeof(int) => 4
N = sizeof(a) / sizeof(int) = 3

1 Like

cảm ơn bạn đã chỉ giáo!

cảm ơn bạn đã giúp cho mình hiểu!

Tính như hai ông thì đếm tay cũng ra. Code làm gì cho mệt.

Sau này viết thêm vào bảng thì ngồi chỉnh lại hơi bị fer.

Hi rogp10.
Viết cái define ra. Code vừa ngắn gọn lại dẽ bảo trì.

Vẫn phải chỉnh lại #define đấy chứ. Không sửa bao giờ chả dễ hơn là sửa code.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?