View Full Version : سوال: چرا در سی پلاس پلاس برای دریافت مقدار حتما باید آدرس به کار ببریم؟
complexcoding
جمعه 16 تیر 1391, 18:46 عصر
دوستان سلام
در سی شارپ برای تعریف متغیر نه از اشاره گر استفاده می کردیم و نه از آدرس اما در سی پلاس پلاس برای دریافت مقدار حتما باید آدرس به کار ببریم؟ به این مثال توجه کنید:
int a;
scanf (" %d ", &a);
در واقع ما به عنوان ورودی عدد می دهیم در صورتی که a& در scanf از ما آدرس می خواهد؟
پیشاپیش ممنون
pe32_64
جمعه 16 تیر 1391, 18:53 عصر
این موضوع مربوط به تابع scanf است.
بخشی از قدرت این زبان به خاطر اشاره گرها(آدرس )است.
در این زبان و اینجا این تابع برای اینکه مقدار متغییر و بتونه تغییر بده(با مقدار خونده شده ست کنه)،از آدرسش استفاده کرده.
در سی شارپ اشاره گر به این صورت نیست و از دید شما پنهانه ولی وجود داره.
اشاره گر خیلی هم مفیده!
مسعود اقدسی فام
جمعه 16 تیر 1391, 23:42 عصر
دوستان سلام
در سی شارپ برای تعریف متغیر نه از اشاره گر استفاده می کردیم و نه از آدرس اما در سی پلاس پلاس برای دریافت مقدار حتما باید آدرس به کار ببریم؟ به این مثال توجه کنید:
int a;
scanf (" %d ", &a);
در واقع ما به عنوان ورودی عدد می دهیم در صورتی که a& در scanf از ما آدرس می خواهد؟
پیشاپیش ممنون
زمانی که قراره مقدار a داخل تابع scanf تغییر کنه (متناسب با ورودی کاربر) نمیشه از انتقال با مقدار (By Value) استفاده کرد که فقط یه کپی از مقدار a رو برای تابع ارسال میکنه. باید آدرسش به تابع ارسال بشه تا تابع بتونه از طریق آدرس محل متغیر محتوای اون رو عوض کنه.
در ضمن scanf از C به ++C ارث رسیده. خود ++C از cin و cout استفاده میکنه که با اشارهگر کار نمیکنن.
cin >> a;
Hossenbor
دوشنبه 19 تیر 1391, 11:24 صبح
دوست عزیز شاید شنیده باشی کامپیوتر احمقه بلا نسبت همه این هم بخاطر همون چونکه کامپیوتر نمیدونه چطور با مقادیر دریافتی کار کنه برای همین بصورت دستی بهش میفهمونیم
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.