טיפוסים בסיסיים בשפת 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. כפי שאמרנו, טיפוס של משתנה מגדיר את קבוצת הערכים שהוא יכול לקבל:
char (character)- מייצג תו בודד כמוFאו=. המזההc%משמש להדפסת תו בודד. בהמשך נראה מהי קבוצת הערכים שמשתנה מטיפוסcharיכול לקבל.int (integer)- מייצג מספר שלם חיובי/שלילי/אפס. ראינו כי המזההd%משמש להדפסת מספר שלם.float (floating point)- מספר עשרוני - floating point היא שיטה ליצוג מספרים עשרוניים ע״י מחשב אליה לא נכנס בקורס. המזההxf.%מדפיסxספרות אחרי הנקודה העשרונית במספר, כאשר בדוגמא הדפסנו 2 ספרות לאחר הנקודה.double- טיפוס נוסף ליצוג מספרים עשרוניים, המדויק יותר מ-floatאבל משתמש ביותר בזכרון. בקורס אין צורך לעמוד על ההבדל ביניהם. המזההxlf.%מדפיסxספרות אחרי הנקודה העשרונית, כאשר בדוגמא הדפסנו 5 ספרות לאחר הנקודה.bool (boolean)- מייצג משתנה שיכול לקבל אחד משני ערכים בלבד - אמת או שקר, true או false. ערכים אלו מיוצגים ע״י המספרים0עבורfalseו-1עבורtrue. בשביל להשתמש בטיפוס יש לבצעinclude#ל-stdbool.h. נשים לב שבדומה ל-intהדפסנו אתboolעםd%- נעמוד על הסיבות המדויקות לכך בהמשך.char *(string)- כל רצף של תווים בתוך מרכאות כפולות"..."נקרא מחרוזת. הסינטקס* charמעט מבלבל - בהמשך נלמד שיש קשר הדוק בין תווים לבין מחרוזות ולכן הסינטקס עבורם דומה.
הערות
- קיימים טיפוסים רבים נוספים וכפילויות רבות ביניהם. למשל, הטיפוסים
uint32_t,int64_t,longו-long longכולם מייצגים מספרים בצורות שונות. בקורס נסתפק ביצוג מספרים ע״י הטיפוסintולא נעמוד על ההבדל ביניהם. - יש הבדל מהותי מבחינת התוכנה בין
int x = 1לביןfloat x = 1.0- הם מיוצגים בצורה שונה לחלוטין בזכרון ויש להזהר מבלבול ביניהם. - ראינו כי ניתן להדפיס שורה חדשה ב-
printfעם המזההn\. ישנם מספר תווים מיוחדים אחרים - נסכם אותם פה לשימוש עתידי:t\- הדפסת טאב (רווח מיוחד שבדרך כלל באורך 4 רווחים רגילים)"\- הדפסת"\\- הדפסת\%%- הדפסת%(למניעת בלבול עם מזהה הדפסה)