Scope biến trong vòng lặp for

cho em hỏi biến đc khai báo trong vòng lặp for thì sau khi kết thúc vòng lặp for nó sẽ đc giải phóng khỏi bộ nhớ hay vẫn chiếm dụng bộ nhớ cho đến khi hàm thực thi xong??
vd

for(int i=0;i<4;i++){}

biến i ở đây sẽ tồn tại đến khi kết thúc 1 hàm hay ,ngay sau khi ra khỏi vòng for là nó đc giải phóng luôn

C/C++ quy định biến trùng tên khác scope là hai biến khác nhau, và trong C++ hàm hủy cho đối tượng tĩnh luôn được gọi khi rời scope.

Một ví dụ đơn giản:

struct T {
   int x, y;
   T(): x(0), y(0) {} // nếu ko đằng sau sẽ bị undefined
   ~T() { std::cout << "Destroyed"; }
};

int func(int n) {
   int i;
   for(int i=1; i<n; ++i) { T t[60]{}; std::cout << t[i].x; }
   for(i=1; i<n; ++i) { /* tùy hỉ */ }
   return ++i;
}

sau đó bạn đọc file asm :smiley:

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