Ai nói trình biên dịch sẽ dành bất kỳ dung lượng nào (chỉ có thể được đăng ký).
Điều này là hoàn toàn không xác định.
Tất cả những gì bạn có thể nói là nó ( x
) chỉ có thể được truy cập từ bên trong khối bên trong.
Cách trình biên dịch phân bổ bộ nhớ (trên ngăn xếp nếu nó tồn tại) hoàn toàn phụ thuộc vào trình biên dịch (vì vùng nhớ có thể được sử dụng lại cho nhiều đối tượng (nếu trình biên dịch có thể chứng minh rằng tuổi thọ của chúng không trùng nhau)).
Là không gian cho x dành riêng trên ngăn xếp ngay lập tức khi nhập func
Không xác định được.
hoặc chỉ khi khối thực sự được thực thi?
Không xác định được.
Nhưng nếu x
là một đối tượng lớp thì hàm tạo sẽ chỉ được chạy nếu khối được nhập.
Hay đó là sự lựa chọn của nhà soạn nhạc?
Trình biên dịch thậm chí có thể không phân bổ bộ nhớ.
Do C và C ++ hành xử giống nhau về điều này?
Đúng