1
1

সি এ ইনপুট নিতে গেলে স্ট্রিং এর ক্ষেত্রে এমপারসেন্ড(&) চিহ্ণ লাগে না কেন?

asked 15 May '15, 20:10

tahmid's gravatar image

tahmid
142219


C ল্যাঙ্গুয়েজে একটি ভ্যারিয়েবল read করার জন্য scanf() ফাংশনের ওই ভ্যারিয়েবলের মেমরি অ্যাড্রেস প্রয়োজন হয়। যেমন int/char এসবের ক্ষেত্রে ভ্যরিয়েবল একটি মেমরি ব্লক নির্দেশ করে তাই ভ্যরিয়েবল read করার জন্য ওই ব্লকের পয়েন্টার বা অ্যাড্রেস দরকার হয়, তাই এদের ক্ষেত্রে এমপারসেন্ড(&) সাইন প্রয়োজন পরে। কিন্তু স্ট্রিং(string) হচ্ছে character buffer এর অ্যাড্রেস। এজন্য scanf() ফাংশন string read এর সময় সরাসরি অ্যাড্রেস পায়। তাই স্ট্রিং টাইপে ইনপুটের সময় এমপারসেন্ড(&) সাইন লাগে না।

permanent link

answered 18 May '15, 14:12

__salman__'s gravatar image

__salman__ ♦♦
1.1k211

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×402
×212
×56
×14

question asked: 15 May '15, 20:10

question was seen: 970 times

last updated: 18 May '15, 14:12