Về bản chất, tại sao giá trị của static được giữ nguyên trong hàm?

Như topic Thảo luận về static variables và register variables đã nói về static, dưới đây là hai posts giải thích về vấn đề đó

Tuy nhiên, mình còn thắc mắc về bản chất của static, tại sao giá trị của nó có thể tồn tại được và ko mất đi?

Còn volatile thì chờ cao thủ vào điểm danh :smile:

P/S: Hình như @dinhtan vẫn còn thắc mắc chỗ static?

Vâng em quên ko nói rõ ở đây ta chỉ xét với C, nhưng hình như cái mà anh @ltd nói chỉ là biểu hiện hay gọi là tác dụng của nó thì phải , cái đó em biết nhưng em muốn biết tại sao Static lại làm được như thế và nó làm như thế nào ?
Theo em nghĩ nó liên quan đến các vùng nhớ, còn liên quan thế nào mọi người vào giải đáp ^^~

Anh đã sửa câu hỏi lại, anh bỏ volatile đi, em đặt câu hỏi tương tự vào một topic khác, anh sẽ trả lời.

Về vấn đề static, em đã đúng ở một điểm.

Còn liên quan thế nào thì em phải hiểu là trong C. Các biến đều được coi là biến auto. Tức là biến tự động. Vùng nhớ của nó được tạo ra khi vào một hàm, và hủy đi khi kết thúc hàm.

Anh chưa làm về biến static, anh đã có kế hoạch làm, nhưng vì bệnh đau họng không nói được. Nên anh sẽ cập nhật sớm thôi.

Nói ngắn gọn, vùng nhớ cho biến static được cấp vĩnh viễn cho đến khi hủy chương trình. Khác với auto, vùng nhớ bị hủy ngay khi ra khỏi hàm. Đó là lý do tại sao static có thể giữ được giá trị.


P/S: Trong các bạn ở diễn đàn, có nhiều bạn hoạt động tích cực, các bạn sẽ sớm lên Level 3. Khi lên Level 3, các bạn hãy giúp Đạt sửa các câu hỏi lại sao cho phù hợp với nội dung topic.

Cảm ơn các bạn, có các bạn, chúng ta sẽ xây dựng được một cộng đồng học tập / thảo luận một cách thông minh hơn.

Hi vâng em cảm ơn anh,hy vọng video của anh ra sớm :slight_smile:

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