متغیرهای استاتیک توی برنامه، مثل سایر متغیرها با شروع اجرای برنامه ایجاد میشن.
در مورد متغیرهای استاتیکی هم که داخل توابع اعلان میشوند فرقی نمیکنه موقع شروع برنامه ایجاد بشن یا موقع فراخوانی تابع؛ مهم اینه که دیگه از حافظه خارج نمیشن مگر موقع اتمام برنامه.
یعنی اگه حتی تابع مربوطه هم دوباره فراخوانی بشه دیگه این متغیر مقداردهی اولیه نمیشه،چون یکبار مقداردهی شده.

Local variables declared static still have block scope even though they exist from the time the program begins execution
توضیح : این متغیرها در تمام مدت اجرای برنامه در حافظه وجود دارند ولی فقط در بلوک یا دامنه مربوط به خودشون قابل دسترسی هستند.

این متغیرها فقط و فقط یکبار مقداردهی اولیه میشوند .

اگه توی کتاب جعفرنژاد قمی بنویشه که "این متغیر ها در زمان اولین فراخوانی تابع ایجاد میشن " جمله اش درست تر میشه.

موفق باشید.