Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Studies

טיפוסים בסיסיים בשפת C

כעת יש לנו את הכלים לכתוב ולהבין את התוכנית הבאה, בה נפגוש את הטיפוסים החשובים בשפה וכיצד להדפיס אותם:

#include <stdbool.h>
#include <stdio.h>
int main() {
    char grade = 'A';
    int age = 20;
    float height = 1.75;
    double pi = 3.14159;
    bool is_student = true;
    char *string = "I am a string!";

    printf("Grade: %c\n", grade);
    printf("Age: %d\n", age);
    printf("Height: %.2f meters\n", height);
    printf("Pi: %.5lf\n", pi);
    printf("Student status: %d\n", true);
    printf("My string is: %s\n", string);
}

בתוכנית מופיעים למעשה רוב הטיפוסים הבסיסיים בשפת C. כפי שאמרנו, טיפוס של משתנה מגדיר את קבוצת הערכים שהוא יכול לקבל:

  1. char (character) - מייצג תו בודד כמו F או =. המזהה c% משמש להדפסת תו בודד. בהמשך נראה מהי קבוצת הערכים שמשתנה מטיפוס char יכול לקבל.
  2. int (integer) - מייצג מספר שלם חיובי/שלילי/אפס. ראינו כי המזהה d% משמש להדפסת מספר שלם.
  3. float (floating point) - מספר עשרוני - floating point היא שיטה ליצוג מספרים עשרוניים ע״י מחשב אליה לא נכנס בקורס. המזהה xf.% מדפיס x ספרות אחרי הנקודה העשרונית במספר, כאשר בדוגמא הדפסנו 2 ספרות לאחר הנקודה.
  4. double - טיפוס נוסף ליצוג מספרים עשרוניים, המדויק יותר מ-float אבל משתמש ביותר בזכרון. בקורס אין צורך לעמוד על ההבדל ביניהם. המזהה xlf.% מדפיס x ספרות אחרי הנקודה העשרונית, כאשר בדוגמא הדפסנו 5 ספרות לאחר הנקודה.
  5. bool (boolean) - מייצג משתנה שיכול לקבל אחד משני ערכים בלבד - אמת או שקר, true או false. ערכים אלו מיוצגים ע״י המספרים 0 עבור false ו-1 עבור true. בשביל להשתמש בטיפוס יש לבצע include# ל-stdbool.h. נשים לב שבדומה ל-int הדפסנו את bool עם d% - נעמוד על הסיבות המדויקות לכך בהמשך.
  6. char *(string) - כל רצף של תווים בתוך מרכאות כפולות "..." נקרא מחרוזת. הסינטקס * char מעט מבלבל - בהמשך נלמד שיש קשר הדוק בין תווים לבין מחרוזות ולכן הסינטקס עבורם דומה.

הערות

  1. קיימים טיפוסים רבים נוספים וכפילויות רבות ביניהם. למשל, הטיפוסים uint32_t, int64_t, long ו-long long כולם מייצגים מספרים בצורות שונות. בקורס נסתפק ביצוג מספרים ע״י הטיפוס int ולא נעמוד על ההבדל ביניהם.
  2. יש הבדל מהותי מבחינת התוכנה בין int x = 1 לבין float x = 1.0 - הם מיוצגים בצורה שונה לחלוטין בזכרון ויש להזהר מבלבול ביניהם.
  3. ראינו כי ניתן להדפיס שורה חדשה ב-printf עם המזהה n\. ישנם מספר תווים מיוחדים אחרים - נסכם אותם פה לשימוש עתידי:
    1. t\ - הדפסת טאב (רווח מיוחד שבדרך כלל באורך 4 רווחים רגילים)
    2. "\ - הדפסת "
    3. \\ - הדפסת \
    4. %% - הדפסת % (למניעת בלבול עם מזהה הדפסה)