לוגו אתר Fresh          
 
 
  אפשרות תפריט  ראשי     אפשרות תפריט  צ'אט     אפשרות תפריט  מבזקים     אפשרות תפריט  צור קשר     חץ שמאלה ‎print ‎"Hello World!"; if‎ ‎not rules.‎know ‎then rules.‎read(); חץ ימינה  

לך אחורה   לובי הפורומים > מחשבים > תכנות ובניית אתרים
שמור לעצמך קישור לדף זה באתרי שמירת קישורים חברתיים
תגובה
 
כלי אשכול חפש באשכול זה



  #2  
ישן 11-11-2006, 02:04
צלמית המשתמש של ם_O
  משתמש זכר ם_O ם_O אינו מחובר  
 
חבר מתאריך: 15.08.06
הודעות: 465
אם אתה שואל את זה, מראש אני אניח שהמערך סטטי,
בתגובה להודעה מספר 1 שנכתבה על ידי 69cool שמתחילה ב "[C]שאלה על רקורסיה אם מערכים"

אז לא, אתה לא חייב להשתמש במצביעים.
מבחינת הפונקציה שמקבלת את המערך, כן, היא מקבלת את הכתובת של התא הראשון (ולכן כשאתה מקבל מערך כארגיומנט אתה לא יוצר בלוק זיכרון חדש, אלא מתעסק עם אותו מערך דהיינו אותה הכתובת).
כשאתה פונה אל a[i] המהדר מתייחס אל זה כ (*(a+i))
או, לשם העניין נניח במערך N מימדי,
קוד:
a[b_1][b_2]...[b_N] equivalents to (*(*(*(...*(Arr+b_1))+b_2)+...)+b_N)


נניח, לדוגמא, הפונקציה הזאת תקבל מערך חד מימדי ותאפס את כל האיברים במקומות הזוגיים, המעבר על המערך יהיה ריקורסיבי
קוד PHP:
 int ChangeArr(int arr[], int n){
if (
n<0)
   return 
0;
else if (
n%2)
     
arr[n]=0;
return 
ChangeArr(arrn-1);


אבל הפונקציה מחזירה 0, ותכלס תוכל פשוט להגדיר מערך גלובאלי במקום לקבל אותו כארגיומנט, אותו דבר.
לעומת זאת אם אתה רוצה שהפונקציה לא רק תשנה מערך אלא גם תחזיר את המערך השונה, או שאתה רוצה לעבוד עם מערך דינאמי של יותר ממימד אחד, תצטרך לקבל ולהחזיר מצביעים כנ"ל

_____________________________________
Any sufficiently advanced bug is indistinguishable from a feature


נערך לאחרונה ע"י ם_O בתאריך 11-11-2006 בשעה 18:15.
תגובה ללא ציטוט תגובה עם ציטוט חזרה לפורום
תגובה

כלי אשכול חפש באשכול זה
חפש באשכול זה:

חיפוש מתקדם
מצבי תצוגה דרג אשכול זה
דרג אשכול זה:

מזער את תיבת המידע אפשרויות משלוח הודעות
אתה לא יכול לפתוח אשכולות חדשים
אתה לא יכול להגיב לאשכולות
אתה לא יכול לצרף קבצים
אתה לא יכול לערוך את ההודעות שלך

קוד vB פעיל
קוד [IMG] פעיל
קוד HTML כבוי
מעבר לפורום



כל הזמנים המוצגים בדף זה הם לפי איזור זמן GMT +2. השעה כעת היא 04:31

הדף נוצר ב 0.04 שניות עם 10 שאילתות

הפורום מבוסס על vBulletin, גירסא 3.0.6
כל הזכויות לתוכנת הפורומים שמורות © 2024 - 2000 לחברת Jelsoft Enterprises.
כל הזכויות שמורות ל Fresh.co.il ©

צור קשר | תקנון האתר