general geranger
20-03-2015, 23:23
سلام دوستان . طبق معمول پای کتاب جعفر نژاد بودم رسیدم به مثال 9_6 که باید یه تابع بنویسم که یه مقدار int بگیره و به صورت یه اشاره گر / آرایه char تحویل بده . 500 بار کدو خوندم نفهمیدم . عین به عینش رو هم نوشتم کامپایل کردم . درست کار میکنه اما بازم نفهمیدم چیزی :|
کد
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کدی که خودم سعی کردم بنویسم (بالایه رو نفهمیدم اینو نوشتم.) نتیجش یه سری کاراکتر نامفهوم شده :n03:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اون قسمتایی که هایلایت شدن دیگه کلا هیچی ازشون نفهمیدم. مگه str از یه آدرس شروع نمیشه با طول ده؟ اگه میخواد هر مرحله یکی بره روش که char بعدی پر شه چرا *str نوشته ؟ این که میشه محتویات اون محل که :| بعد اصلا برام مفهوم نیست با هر ++ چی میشه . آدرس یه char میره جلو؟ بعد بیرون اومدن از while اول آدرس str روی آخرین char میفته؟ بعد تو خطی که زیرش خط هست اصلا چرا اینکارو کرده ؟ محتویات یه جای نا معلوم str -- ??? بعد کاراکتر انتهای رشته رو گذاشته ؟ کاراکتره نمیره داخل اعداد ؟؟؟ اصلا هیچی
تو خطی که tmp = *str; ده برام خیلی نامفهومه چه جوری جاهای درستو پیدا میکنه . با توجه ببه اینکه همه جا باید با *str انجام شده باشه پس آدرس همون آدرسه اول باید باشه . خب اینجوری همه اعداد عین هم میشن بعد یه شماره قبل str جایگزین یه جای نامعلوم از savestr میشه؟؟؟ گییج شدم . جالبه یه cout میذارم که اون قسمت خاص str* رم که شمارش ظاهرا اونجاس نشون بده یه سری چیزای نامفهوم چاپ میشه ولی بعد پایان متد درست نشون میده ؟!؟!؟!؟!؟!
نفهمیدم درست حسابی :| اگر اگر امکانش هست یکی خط به خط توضیح بده بفهمیم چی شد؟؟؟ (خیلی ممنون میشم:n16:) نمیدونم چرا فکر میکنم برای بنامه نویس شدن خنگم:n28: یه روزه روش دارم فکر میکنم هیچیشو نفهمیدم . انگار که جلوم یه زبان جدید گذاشته باشن :|
اگه یه کد ساده برای همین منظور که با اشاره گر ها انجام شده باشه به ذهنتون اومد لطفا دریغ نکنید:n16:
خواب و خوراک ندارم من با این اشاره گرا . خیلی سختن:n27:
یه سوال دیگ]: نحوه عمل کردن کارکترای آرای8ه ای مقل سایر آرایه هاست؟ چون بعضی جاها اسم آرایه رو مینویسن (تو cout ( بعد کلشو مینویسه بدون یه for ؟×!
کد
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کدی که خودم سعی کردم بنویسم (بالایه رو نفهمیدم اینو نوشتم.) نتیجش یه سری کاراکتر نامفهوم شده :n03:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اون قسمتایی که هایلایت شدن دیگه کلا هیچی ازشون نفهمیدم. مگه str از یه آدرس شروع نمیشه با طول ده؟ اگه میخواد هر مرحله یکی بره روش که char بعدی پر شه چرا *str نوشته ؟ این که میشه محتویات اون محل که :| بعد اصلا برام مفهوم نیست با هر ++ چی میشه . آدرس یه char میره جلو؟ بعد بیرون اومدن از while اول آدرس str روی آخرین char میفته؟ بعد تو خطی که زیرش خط هست اصلا چرا اینکارو کرده ؟ محتویات یه جای نا معلوم str -- ??? بعد کاراکتر انتهای رشته رو گذاشته ؟ کاراکتره نمیره داخل اعداد ؟؟؟ اصلا هیچی
تو خطی که tmp = *str; ده برام خیلی نامفهومه چه جوری جاهای درستو پیدا میکنه . با توجه ببه اینکه همه جا باید با *str انجام شده باشه پس آدرس همون آدرسه اول باید باشه . خب اینجوری همه اعداد عین هم میشن بعد یه شماره قبل str جایگزین یه جای نامعلوم از savestr میشه؟؟؟ گییج شدم . جالبه یه cout میذارم که اون قسمت خاص str* رم که شمارش ظاهرا اونجاس نشون بده یه سری چیزای نامفهوم چاپ میشه ولی بعد پایان متد درست نشون میده ؟!؟!؟!؟!؟!
نفهمیدم درست حسابی :| اگر اگر امکانش هست یکی خط به خط توضیح بده بفهمیم چی شد؟؟؟ (خیلی ممنون میشم:n16:) نمیدونم چرا فکر میکنم برای بنامه نویس شدن خنگم:n28: یه روزه روش دارم فکر میکنم هیچیشو نفهمیدم . انگار که جلوم یه زبان جدید گذاشته باشن :|
اگه یه کد ساده برای همین منظور که با اشاره گر ها انجام شده باشه به ذهنتون اومد لطفا دریغ نکنید:n16:
خواب و خوراک ندارم من با این اشاره گرا . خیلی سختن:n27:
یه سوال دیگ]: نحوه عمل کردن کارکترای آرای8ه ای مقل سایر آرایه هاست؟ چون بعضی جاها اسم آرایه رو مینویسن (تو cout ( بعد کلشو مینویسه بدون یه for ؟×!