01/10/2018, 13:48

Thắc mắc về tính độ lớn của mảng

E có 1 mảng như trong hình. Nếu e đưa mảng vào hàm thì sau khi tính kích thước nó tăng lên 1 còn nếu không để trong hàm nó vẫn giữ nguyên. Anh(chị) giải thích giúp e với ạ. E cảm ơn

rogp10 viết 16:04 ngày 01/10/2018

Bản chất không phải vậy.

arr[7] đúng là 7 byte nên ở main() sẽ hiện 7 (phần tử). Nhưng tham số hình thức arr là con trỏ (8 byte). Bản chất của vđ là: mảng (raw array) đều truyền bằng con trỏ, còn T[] hay T* có thể dùng để phân biệt truyền mảng hay (truyền) tham biến (nhưng tham số cho C-string toàn là char*)

trinhhuyhoang viết 15:59 ngày 01/10/2018

a cho e hỏi thêm. Nếu muốn tính độ lớn của mảng đó trong hàm thì mình làm ntn ạ

trinhhuyhoang viết 15:50 ngày 01/10/2018

dạ e cảm ơn :v :v :v

Tao Không Ngu. viết 16:04 ngày 01/10/2018

Hi trinhhuyhoang.
Tốt nhất là bạn truyền kích thước mảng vào. Việc tính size như vậy thực sự là việc làm vô ích.

Nguyễn Phạm Anh Quân viết 15:57 ngày 01/10/2018

C/C++ qui định kích thước của 1 mảng tĩnh phải là const, nên bắt buộc phải truyền kích thước của mảng vào hàm!

Còn đây là 1 số cách tính size của array: https://stackoverflow.com/questions/4108313/how-do-i-find-the-length-of-an-array

Bài liên quan
0