C תמיד היה מאוד ספציפי לגבי הערכים ההתחלתיים של אובייקטים. אם הם גלובליים או סטטיים, הם יאופסו. אם אוטומטי, הערך אינו מוגדר. זה היה המקרה במהדרים שלפני C89 וכך צוין על ידי K&R ובדוח C המקורי של DMR.
האם יש אתחול ברירת מחדל ב-C?
בניגוד לשפות תכנות מסוימות, C/C++ אינו מאתחל את רוב המשתנים לערך נתון (כגון אפס) באופן אוטומטי. לפיכך, כאשר למשתנה מוקצה מיקום זיכרון על ידי המהדר, ערך ברירת המחדל של המשתנה הזה הוא כל ערך (זבל) שכבר נמצא במיקום הזיכרון הזה!
מהו אתחול ברירת המחדל של מערך ב-C?
לדוגמה, מערכי המספרים השלמים מאותחלים ב-0. ערכי כפול וצוף יאותחלו ב-0.0. עבור מערכי char, ערך ברירת המחדל הוא '\0'. עבור מערך מצביעים, ערך ברירת המחדל הוא nullptr.
האם אתחול דינמי אפשרי ב-C?
אתחול דינמי של אובייקט ב-C++
אתחול דינמי של אובייקט מתייחס לאתחול האובייקטים בזמן ריצה כלומר, הערך ההתחלתי של אובייקט מסופק במהלך זמן ריצה. ניתן להשיג זאת על ידי שימוש בנאים ועל ידי העברת פרמטרים לבנאים.
אילו משתנים מאותחלים אוטומטית ב-C?
משתנים גלובליים מאותחלים אוטומטית ל-0 בזמן ההצהרה. משתנים גלובליים נכתבים בדרך כלל לפני הפונקציה הראשית. בשורה 4, a ו-b מוכרזים כשני משתנים גלובליים מסוג int.