01/10/2018, 16:30

Hỏi về hàm sizeof() của mảng trong C++

Mình có đoạn code sau:

#include <iostream>

void getSize(int a[])
{
	std::cout << "
size at func: " << sizeof(a);
}

int main() 
{
	int a[] = { 8, 7, 2, 5, 3, 1 };

	std::cout << "
size at main: " << sizeof(a);

	getSize(a);
	
	return 0;
}

Sau khi chạy thì chương trình in ra:

size at main: 24
size at func: 8

Mình mới chuyển sang C++ nên chưa hiểu lắm về ngôn ngữ này. Mong mọi người giải thích giúp!

rogp10 viết 18:35 ngày 01/10/2018

Mảng khi truyền vào thì chỉ còn là con trỏ, vì vậy sizeof cũng chỉ là của con trỏ.

Thực ra sizeof() là một trong những toán tử đặc biệt, không thể nạp chồng.

Khoa Vo viết 18:31 ngày 01/10/2018

Cảm ơn bạn nhiều! Bạn cho mình hỏi thêm về các tham số có tiền tố &, *, và ** được khộng ạ?

rogp10 viết 18:34 ngày 01/10/2018

Bạn xem phần con trỏ với tham chiếu nhé

Bài liên quan
0