تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 7 از 7

نام تاپيک: اشاره گر ها

  1. #1
    اگه نباشه جاش خالی می مونه shahrzad2006's Avatar
    تاريخ عضويت
    Oct 2006
    پست ها
    240

    پيش فرض اشاره گر ها

    سلام به همه
    كسي هست كه يه كوچولو راجع به اشاره گر ها برام بگه .
    ممنون ميشم.

  2. #2
    پروفشنال Admiral's Avatar
    تاريخ عضويت
    Jul 2006
    پست ها
    675

    پيش فرض

    مبحث اشاره گرها کوچولو نیست که بشه کوچولو توضیحش داد !

    شما توی کدوم قسمت مشکل دارین؟!

  3. #3
    اگه نباشه جاش خالی می مونه shahrzad2006's Avatar
    تاريخ عضويت
    Oct 2006
    پست ها
    240

    پيش فرض

    اگه يه مقداري در مورد روابط بين ارايه ها و اشاره گر ها و همچنين آف ست بگید ممنون می شم.

  4. #4
    داره خودمونی میشه palizesoftware's Avatar
    تاريخ عضويت
    Sep 2005
    محل سكونت
    Usa
    پست ها
    190

    پيش فرض

    سلام دوست عزيز
    مبحث اشاره‌گرها خودش تا اندازه‌اي پيچيده هست. منتها سعي ميكنم كاربردش رو برات توضيح بدام تا دستت بياد چي به چيه.
    ببين فرض كنيم ما يه ماتريس داريم به نام T
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    خانه‌هاي اين ماتريس از 0 تا 9 هست.
    خب براي دسترسي به خانه‌هاي اين ماتريس طبق معمول با ذكر انديس موردنظر ميتونيم به محتويات دسترسي داشته باشيم
    مثلا
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    يعني خانه شماره 6 (چون از 0 شروع ميشه)
    و همونطور كه ميدونيم ذكر اسم ماتريس بدون انديس، آدرس حافظه‌اي كه ماتريس از اونجا شروع ميشه رو به ما ميده.
    و ما با داشتن اين آدرس شروع (آفست) ميتونيم به مكان‌هاي ديگه ماتريس هم دسترسي داشته باشيم.
    فرضا اگر آدرس شروع يه ماتريس 1000 باشه و با توجه به اندازه هر خانه (كه اينجا int هست و هر واحد 2 بايت ميباشد) پس آدرس 1000+2 خانه بعدي را مشخص ميكند، يعني خانه T[1].
    اشاره‌گرها هم براي رسيدن به اين درنظر گرفته شده‌اند.
    براي تعريف يك اشاره‌گر، نوع اشاره‌گر دقيقا بايد با نوع مقصد همسان باشه وگرنه اطلاعات درستي برداشت نخواهد شد.
    در اين مثال، اگر بخواهيم اشاره‌گري براي ماتريس T‌ تعريف كنيم اينطوري عمل ميكنيم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و نحوه استفاده بدين صورت هست كه بايد آدرس مكاني رو توي P بريزيم و بعد محتويات اين آدرس رو بخونيم يا بنويسيم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    در اين كد ما محتويات خانه‌اي را با آدرس موجود در P را درون متغير C ميريزيم. و چون محتويات P، ادرس شروع ماتريس هست، پس به محتويات اولين خانه از ماتريس دسترسي داريم.
    در كل براي رجوع به خانه‌اي توسط اشاره‌گر از نماد * استفاده ميكنيم.
    در مورد ماتريس گفتيم كه ذكر نام ماتريس بدون انديس، آدرس اولين خانه را به ما برگشت ميدهد، پس براي رجوع به خانه‌هاي بعدي بايد به اشاره‌گرمان مقداري را اضافه كنيم
    يعني براي دريافت محتويات خانه بعدي:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    و همينطور براي بدست آوردن آدرس يك متغير بايد از & استفاده كرد.
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  5. #5
    پروفشنال Admiral's Avatar
    تاريخ عضويت
    Jul 2006
    پست ها
    675

    پيش فرض

    نام آرایه اشاره گر ثابتی به اولین عنصر آرایه است.

    مثلاً این اعلان رو ببین :

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    شناسه arr در واقع یک اشاره گر به مکان اولین عنصر آرایه یعنی [0] arr هست.

    این کد رو اجرا کن و نتیجه رو ببین:

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    arr+1 به اندازه سایز arr (سایز int ) آدرس اشاره گر رو جلو می بره.

  6. #6
    پروفشنال Admiral's Avatar
    تاريخ عضويت
    Jul 2006
    پست ها
    675

    پيش فرض

    " آفست " هم در برخی موارد به عنوان " آدرس " بکار میره.

    حافظه رو به بخش هایی(قطعه هایی) تقسیم می کنن و آدرس شروع هر قطعه مشخصه.

    هر قطعه مثلاً 64 کیلو بایته. پس میتونیم بایت های هر قطعه رو از صفر شروع به شماره گذاری کنیم.(= آفست)

    حالا اگه A024f آدرس شروع یک قطعه باشه و D92f آفست اون قطعه باشه از جمع این دوتا آدرس اصلی(فیزیکی) اون بایت به دست میاد.

    فرض کن برنامه شما در قطعه A024f باشه و در این قطعه جا بشه. حالا فقط با استفاده از آفست میتونید به کل بایت های برنامه دسترسی داشته باشید (بدون دانستن اینکه برنامه در کدوم سگمنت یا قطعه لود شده)

    نمی دونم تونستم مفهوم رو برسونم یا نه !

    موفق باشید.

  7. #7
    اگه نباشه جاش خالی می مونه shahrzad2006's Avatar
    تاريخ عضويت
    Oct 2006
    پست ها
    240

    پيش فرض

    ممنون دوست عزيز

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •