sajjadrad
پنج شنبه 20 خرداد 1389, 19:18 عصر
با سلام خدمت دوستان
خسته نباشید.
قطعه کد زیر رو ببیینید:
int main()
{
char word[80];
do
{
cin>>word;
if (*word) cout<<"\t"\"<<word<<"\"\n";
}
while(*word);
}
خب در برنامه بالا ابتدا یک رشته با نام word و طول 79 تعریف میشه.
بعد در خط دوم دستور cin منتظر میمونه تا کاربر رشته ای رو وارد کنه.فکر کنید در این رشته عبارت the biter تایپ شده و دکمه enter رو بزنیم.سپس این رشته به حافظه میانی میره.دستور cin تو حافظه میانی از اول رشته تا خط فاصله رو میخونه (the) و به خط سوم میره.خط سوم بررسی میکنه که اگر word نال نبود رشته رو چاپ میکنه.
در فراخوانی بعدی دستور cin (دومین بار اجرای حلقه) ،cin عبارت را از بعد از خط فاصله در حافظه میانی میخونه (biter) به به خط بعدی میره.
حالا مشکل من سر شرط while هستش:
این شرط یک شرط بی نهایته.چون while به خونه اول رشته اشاره میکنه و تا وقتی که این خونه null نشه false نمیشه.
حالا مشکلم اینجاست که دسنور while در بار اول اجرای حلقه کدوم word رو مقایسه میکنه؟
یعنی آیا دفه اول word مساویه با the و دفه دومم word مساویه با biter???:اشتباه:
در کل آیا مقایسه ای که while میکنه با مقایسه ای که if میکنه فرقی داره؟
اصلا اینا کدوم word رو مقایسه میکنن.....؟
اگه یکی توضیح بده ممنون میشم...:قلب:
با تشکر از دوستان عزیز.
خسته نباشید.
قطعه کد زیر رو ببیینید:
int main()
{
char word[80];
do
{
cin>>word;
if (*word) cout<<"\t"\"<<word<<"\"\n";
}
while(*word);
}
خب در برنامه بالا ابتدا یک رشته با نام word و طول 79 تعریف میشه.
بعد در خط دوم دستور cin منتظر میمونه تا کاربر رشته ای رو وارد کنه.فکر کنید در این رشته عبارت the biter تایپ شده و دکمه enter رو بزنیم.سپس این رشته به حافظه میانی میره.دستور cin تو حافظه میانی از اول رشته تا خط فاصله رو میخونه (the) و به خط سوم میره.خط سوم بررسی میکنه که اگر word نال نبود رشته رو چاپ میکنه.
در فراخوانی بعدی دستور cin (دومین بار اجرای حلقه) ،cin عبارت را از بعد از خط فاصله در حافظه میانی میخونه (biter) به به خط بعدی میره.
حالا مشکل من سر شرط while هستش:
این شرط یک شرط بی نهایته.چون while به خونه اول رشته اشاره میکنه و تا وقتی که این خونه null نشه false نمیشه.
حالا مشکلم اینجاست که دسنور while در بار اول اجرای حلقه کدوم word رو مقایسه میکنه؟
یعنی آیا دفه اول word مساویه با the و دفه دومم word مساویه با biter???:اشتباه:
در کل آیا مقایسه ای که while میکنه با مقایسه ای که if میکنه فرقی داره؟
اصلا اینا کدوم word رو مقایسه میکنن.....؟
اگه یکی توضیح بده ممنون میشم...:قلب:
با تشکر از دوستان عزیز.