PDA

View Full Version : سوال: اشاره گر در سی پلاس



peymanjon
شنبه 18 مهر 1394, 20:50 عصر
دوستان من یک سوال به شکل زیر داشتم که در جواب آن شک دارم لطفا نظرات خودتون یا اگه مرجعی برای جوابتون و راهنمایی من دارید اعلام بفرمایید:

سوال : کدام گزینه درست است؟
الف) int &a=12
ب) char a=&b
ج) int &a=b
د) int *a=b

طبق پاسخ نامه جواب 3 می باشد

rahnema1
شنبه 18 مهر 1394, 21:46 عصر
سلام
جوابها را سعی می کنم خیلی ساده مطابق با استاندارد ++c بگم
گزینه1:
اینجا a یک رفرنسه که می شه با یک متغیر دیگه از همون نوع مقدار دهی اولیه کرد و اینجا چون 12 یک متغیر نیست پس نمیشه این کار را کرد مگر اینکه از const استفاده کنیم :
const int& a = 12;
گزینه 2:
هر اشاره گر را می شه به یک نوع عدد صحیح ( که char هم از انواع صحیح هست) تبدیل کرد به شرطی که اولا تبدیل به صورت صریح باشه و ثانیا متغیر مورد نظر جای کافی برای نگهداری مقدار اشاره گر را داشته باشه
در اینجا اشاره گر می خواهد به char تبدیل بشه اما اولا تبدیل به صورت ضمنیه و صریح نیست یعنی از cast استفاده نمی شه و ثانیا در بشتر سیستم ها سایز char کوچکتر از اشاره گر هست و این گزینه غلطه
گزینه 3:
توضیحات گزینه 1 برای این مورد صدق می کنه در صورتی که بدونیم که b از نوع int هست و ثانیا از لحاظ const و volatile بودن باید متناسب باشند مثلا اگه b از نوع char باشه این گزینه اشتباهه همچنین اگه b از نوع const int باشه باز هم این گزینه غلطه بنابراین نوع b حتما باید int باشه تا این گزینه درست باشه
گزینه 4:
توضیحات گزینه 2 برای این مورد صدق می کنه اینجا تبدیل باید صریح باشه که نیست پس غلطه

در نتیجه سوال مشکل داره چون در مورد گزینه 3 مشخص نکرده b از چه نوعیه!!!