مشاهده نسخه کامل
: مشكل در اشارهگرها
ميگه نبايد به اشاره گرها آدرس تخصيص بديم
پس چرا تو خط
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید76
بجاي اينكه به آرايه ي اشاره گر iitsString آدرسهاي rhs را تخصيص بده مقدار تخصيص داده؟
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
لطفا خود خطو مشخص کنین
خط 76 که میوفته رو توضیحات
mahdi_pc
31-08-2008, 11:02
itsstring یک اشاره گر هست ولی itsstring[i] که اشاره گر نیست بلکه محتوای حافظه در i خانه جلوتر از آدرس itsstring هست و در برنامه ی شما نوعش هم char تعیین شده.
ميشه كمي واضح تر توضيح بدين من نفهميدم چي گفتيد!!
سلام
اگه درست متوجه شده باشم شما منظورت اینه که چرا بایه اشاره گر مثل آرایه رفتار شده.خوب این یکی از خصوصیات سی هست. در اصل سی بین آرایه و اشاره گر تفتوتی قائل نیست و میشه از این دوتا به جای هم استفاده کرد در اصل نام آرایه اشاره گری است به اولین خانه آن آرایه. امیدوار خوب توضیح داده باشم
سلام
اگه درست متوجه شده باشم شما منظورت اینه که چرا بایه اشاره گر مثل آرایه رفتار شده.خوب این یکی از خصوصیات سی هست. در اصل سی بین آرایه و اشاره گر تفتوتی قائل نیست و میشه از این دوتا به جای هم استفاده کرد در اصل نام آرایه اشاره گری است به اولین خانه آن آرایه. امیدوار خوب توضیح داده باشم
از اينكه اينو برام ياد آوري كردين ممنونم ولي
من پرسيدم چرا بجاي اينكه تو 76 به itsString آدرسهاي rhs تخصيص داده بشه مقدار rhs تخصيص داده شده؟:11:
بابا يكي جواب بده ديگه
!!
mahdi_pc
03-09-2008, 05:11
درسته که itString یک char * است. اما مثلا itString[3] یعنی محتوای این خونه از حافظه: itString + 3
یعنی انگار itString اسم یک آرایه از نوع کاراکتر است و حالا ما داریم به خونه ی i ام از اون آرایه یه مقداری نسبت می دهیم. پس تا حالا مشخص شده که چیزی که باید توی itstring[i] ریخته بشه باید یک کاراکتر باشه.
خوب rhs هم که String هست و rhs[i] میشه یکی از حروف اون رشته.یعنی یک کاراکتر.
دقت کنید که همون طور که می دونید اون علامت & قبل ار rhs در ورودی های تابع ، به معنی رفرنس هست نه آدرس!
امیدوارم سوال شما رو درست متوجه شده باشم.
در كد زير آيا pChar آرايه اي از اشاره گره به char هست ؟ يا نه . آرايه اي از نوع char ؟
لطفن كامل توضيح بدين:11:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
mahdi_pc
03-09-2008, 20:41
آرایه ای از char هاست و pchar اشاره گر به سر اون آرایه هست.این کار دقیقا معادل این دستوره : char pchar[5]
يعني ما اگر يه اشاره گر به int تعريف و اون را با new int مقدار دهي كنيم اشاگر به int به يك int تبديل ميشه؟؟
mahdi_pc
04-09-2008, 14:51
اگه منظورتون به این صورته که int * x = new int در این حالت هم نه این که x از حالت اشاره گر به یه عدد int تبدیل بشه بلکه باز هم x یک اشاره گر به سر آرایه ای از int هاست ولی خوب از قضا سایز این آرایه 1 است.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.