
22-10-2005, 17:00
|
 |
|
|
חבר מתאריך: 04.08.02
הודעות: 4,468
|
|
// המצביע strings[1] הוא בעל ערך של התא בזיכרון בו מוחזקת האות הראשונה ,
זה לא נכון, שוב, תחשוב במושגים של "מערכים דו-מימדיים" כשאתה רוצה להתעסק בכל אות בנפרד.
אל תשכח גם, ב-C האיבר הראשון במערך, הוא בעצם האינדקס 0, ולא 1.
האות הראשונה של המחרוזת הראשונה, נמצאת ב:
// הוא לא יכול לתת את כל התאים של "dog" ביחד
כל האותיות של המחרוזת "dog", נמצאות ב:
קוד:
strings[0][0] strings[0][1], strings[0][2], strings[0][3]
]
האות הרביעית כביכול, נקראת NUL (כן, עם L אחד).
בטח למדת על כך בפרק בו עסקת במחרוזות.
ברגע שאתה כותב:
קוד:
printf( "%s", strings[0] );
הפונקציה printf, רצה על כל האותיות של המחרוזת הראשונה, מדפסיקה אותן, ואם היא מגיע לתו NUL, היא יודעת שהמחרוזת הסתיימה.
// *strings[1] ? זה צריך להיות רק התו הראשון ,ז"א "d" לא?
שוב, איבר הראשון במערך נמצא באינדקס 0 ולא 1.
האות הראשונה מוחזקת ב:
או בצורה המקבילה שהדגמתי בתחילת התגובה.
כל הכבוד על התקדמות המהירה, ביום השלישי שלי ב-C אני לא זוכר אם התעסקתי בתוכנית "Hello World" או בתנאים 
// זה קצת שונה ממעריכים ומצביעים שקראתי לפני אני מניח.
זה לא שונה.. מדובר פה סה"כ במצביעים.
רק הערה קטנה, אני ממליץ לך לחזור _הרבה_ על הפרקים העוסקים במצביעים.
אני מניח שאין לך לאן לרוץ עם החומר, שאר הדברים שתכיר כמו unions, structures לא יהיו חדשים לגמרי, וגם אם כן, הם יהיו מובנים מאיליו.
_____________________________________
C pogrammers never die. They are just cast into void.
|