PDA

نسخه کامل مشاهده نسخه کامل : مشكل در اشارهگرها



mahdi7s
30-08-2008, 17:48
ميگه نبايد به اشاره گرها آدرس تخصيص بديم
پس چرا تو خط
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید76
بجاي اينكه به آرايه ي اشاره گر iitsString آدرسهاي rhs را تخصيص بده مقدار تخصيص داده؟


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

HAW3D
30-08-2008, 21:02
لطفا خود خطو مشخص کنین
خط 76 که میوفته رو توضیحات

mahdi_pc
31-08-2008, 11:02
itsstring یک اشاره گر هست ولی itsstring[i] که اشاره گر نیست بلکه محتوای حافظه در i خانه جلوتر از آدرس itsstring هست و در برنامه ی شما نوعش هم char تعیین شده.

mahdi7s
31-08-2008, 18:06
ميشه كمي واضح تر توضيح بدين من نفهميدم چي گفتيد!!

sajadmg
31-08-2008, 22:25
سلام
اگه درست متوجه شده باشم شما منظورت اینه که چرا بایه اشاره گر مثل آرایه رفتار شده.خوب این یکی از خصوصیات سی هست. در اصل سی بین آرایه و اشاره گر تفتوتی قائل نیست و میشه از این دوتا به جای هم استفاده کرد در اصل نام آرایه اشاره گری است به اولین خانه آن آرایه. امیدوار خوب توضیح داده باشم

mahdi7s
01-09-2008, 09:38
سلام
اگه درست متوجه شده باشم شما منظورت اینه که چرا بایه اشاره گر مثل آرایه رفتار شده.خوب این یکی از خصوصیات سی هست. در اصل سی بین آرایه و اشاره گر تفتوتی قائل نیست و میشه از این دوتا به جای هم استفاده کرد در اصل نام آرایه اشاره گری است به اولین خانه آن آرایه. امیدوار خوب توضیح داده باشم
از اينكه اينو برام ياد آوري كردين ممنونم ولي
من پرسيدم چرا بجاي اينكه تو 76 به itsString آدرسهاي rhs تخصيص داده بشه مقدار rhs تخصيص داده شده؟:11:

mahdi7s
02-09-2008, 09:05
بابا يكي جواب بده ديگه
!!

mahdi_pc
03-09-2008, 05:11
درسته که itString یک char * است. اما مثلا itString[3] یعنی محتوای این خونه از حافظه: itString + 3

یعنی انگار itString اسم یک آرایه از نوع کاراکتر است و حالا ما داریم به خونه ی i ام از اون آرایه یه مقداری نسبت می دهیم. پس تا حالا مشخص شده که چیزی که باید توی itstring[i] ریخته بشه باید یک کاراکتر باشه.

خوب rhs هم که String هست و rhs[i] میشه یکی از حروف اون رشته.یعنی یک کاراکتر.

دقت کنید که همون طور که می دونید اون علامت & قبل ار rhs در ورودی های تابع ، به معنی رفرنس هست نه آدرس!

امیدوارم سوال شما رو درست متوجه شده باشم.

mahdi7s
03-09-2008, 09:09
در كد زير آيا pChar آرايه اي از اشاره گره به char هست ؟ يا نه . آرايه اي از نوع char ؟
لطفن كامل توضيح بدين:11:


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

mahdi_pc
03-09-2008, 20:41
آرایه ای از char هاست و pchar اشاره گر به سر اون آرایه هست.این کار دقیقا معادل این دستوره : char pchar[5]

mahdi7s
04-09-2008, 09:12
يعني ما اگر يه اشاره گر به int تعريف و اون را با new int مقدار دهي كنيم اشاگر به int به يك int تبديل ميشه؟؟

mahdi_pc
04-09-2008, 14:51
اگه منظورتون به این صورته که int * x = new int در این حالت هم نه این که x از حالت اشاره گر به یه عدد int تبدیل بشه بلکه باز هم x یک اشاره گر به سر آرایه ای از int هاست ولی خوب از قضا سایز این آرایه 1 است.