Professional Documents
Culture Documents
סיכום נקודות חשובות
סיכום נקודות חשובות
סיכום נקודות חשובות
; int* p = &a הצבת כתובת כגון& :ערך ,פוינטר )לא *פוינטר( ,נאל והמספר =)0מיקום .(0ערך רגיל לא יתקמפל! //
;int p[20]; *p=76 רק במערך נוכל להכניס ערך ב *פוינטר והוא יכנס למיקום // .0
ה * הולך רק על האיי .ה-בי הוא אינט רגיל int* a, b; //
יקדם רק את הכתובת ולא יגע בערכים שבכתובות! ); //קידום פוינטר( *p++,*(p++),p++,++p,p+=5
יוסיף אחד לערך שהפוינטר מצביע אליו! ); //קידום ערך( (*p)++
הפוינטר הימני יקדם ערך ורק אח"כ יתווסף לשמאלי שלא כמו במספרים רגילים!! *p += (*p)++; //
הפוינטר הימני יתווסף לשמאלי ורק אח"כ השמאלי יקדם מיקום כמו במספרים רגילים!! *(p++) += p; //
הערך יודפס )או הערכים במחרוזת צ'אר( cout << *p ; //
;הכתובת תודפסcout << &p ; //
באינט הכתובת תודפס .במחרוזת צ'אר המחרוזת תודפסcout << p ; // .
;)cout <<*(p++ ידפיס את הערך ואז יקדם את הכתובת )שינוי מיקום ה ++ישנה את סדר הפעולות(! //
;)const int *(p++ כשה"קונסט" כתוב לפני ה * )או כמו בדוגמא( הערך קבוע .כשהוא אחרי ה * הכתובת קבועה!! //
;הכתובת של האיבר במקום &array[5] // 5
לא מתקפל!! א"א להכניס מיקום למשתנה מסוג אינט B=&a; //
cdידפיס char *p ={“cd”}; cout<<p[0]<<p[1]; // החלפה בין מצביע למערך :רק בצ'אר ניתן להחליף כך// ..
;}”{char ar[3]={“ab”}; char *p={“cd
מתקפל )ויצביע לתחילת המערך(;p=ar } )א"א לשנות ערך של המצביע לתחילת המערך גם ב (intלא מתקפל!;ar=p
אם נשים את הערך נאל בתוך המצביע נוכל לדעת אם הוא בשימוש שהרי אסור לשים ערך במיקום // 0
הטריק הוא לצייר את המצביעים***p -
][Char a א"א לשנות כתובת של מערך ולכן א"א לשנות את איי )כגון לעשות לו // (++
Int a[5][5];- אלו לא יכולים לקבל את כתובת המערך הדו ממדי – *p and **p
יכול לקבל את הכתובת של המערך הדו ממדי Int (*p)[5]-
עוד הערות:
;char n = a לא מתקפל )אא"כ האות איי הוגדרה כבר )אפי' כאינט(( //
; cout<< 9 ידפיס את הסיפרה // 9
ידפיס את הסיפרה 8מכיוון שברגע שיש השוואה מספרית מסתכלים על ' '9כערכו בטבלת אסקי cout<<('9' == 9?9:8); //
)if(4 || ++x>6 ישר יכנס ללולאה ולא יעשה את פעולת ה) .++כך גם בתנאי אנד כשהתנאי הראשון אינו מתקיים( //
; int x ; int x לא מתקפל! //
; cout << NULL מדפיס // 0
; 'cout << '\0 מדפיס רווח //
כל עוד פונקציה מחזירה את מה שהיא הוגדרה להחזיר לא תהיה שגיאה גם אם אין מי שיקלוט את הארגומנט המוחזר //
)while(a>b==c התנאי הראשון נותן 1או 0ולכן נצטרך :א .איי גדול מ-בי ,וסי= .1ב .איי לא גדול מ-בי ,וסי=// .0
);if(int x=5 אמת ומתקפל )כנל עם נעשה ++לפני האיקס אך לא יתקפל אם נעשה אחרי( //
);if(int x=0 שקר //
)function(int *p רק הערך ישתנה //
)function(int *&p גם הערך וגם המיקום יכולים להשתנות //
קבצים:
>#include <fstream
;)”ifstream inFile(“kelet.txt או ;ifstream inFile ;)”inFile.open("kelet.txt
};if(!inFile){ cerr<<”ERROR”; return -1
))(while(!inFile.eof לא הגיע לסוף הקובץ //
;)”ofstream outFile(“pelet.txt
;)(inFile.close
מחרוזת:
מקבל שני כתובות ומעתיק מהכתובת הראשונה את כל התוים )עד ל ' ('\0לכתובת השניה )כולל 'strcpy(dest,src); // ('\0
כנ"ל רק שמקבל מספר המייצג את מקסימום התווים להעתקה ולכן בטוח יותר strncpy(dest,src,n); //
מחבר מחרוזת לסוף מחרוזת אחרת .שם את התו החדש על הראשון במקום ה ' '\0ושם ' '\0בסוףstrcat(dest,src); // .
מחזיר את אורך המחרוזת strln(str); //
עורך השוואה :אם זהות מחזיר .0אם הראשונה גדולה מחזיר מס' חיובי ואם קטנה שליליstrcmp(str1,str2); // .
;)strstr(str1, substr מחפש מחרוזת בתוך מחרות אחרת //
)(:rand
>#include <ctime
;) ) srand( (unsigned)time( NULL
;)(num = rand
הגדרת הטווח num = rand()% (b-a+1)+5; //
:char
אין אפשרות לעשות פעולות על )איי( כגון ++משום שאי אפשר לשנות את המצביע למערך Char a[]-
;"char *s = "abc הוא שם אפס בסוף אך אי אפשר לשנות את התוכן -
;"char h[] = "abcde שם אפס בסוף ואפשר לשנות את התוכן-
;}'char h[] = {'a','b אפשר לשנות את התוכן אך שם זבל בסוף-
;} 'char a[4] = { 'a', 'b', 'c', 'd מותר-
אסור צריך שיהיה מערך של char a[4] = "abcd"; // 5
;"char letter[6] = "ABCDE
cout << letter+2;//=CDE