প্রোগ্রাম রান করলে আপনার কম্পিউটারের কোথায় কি হয় তা দেখুন নিজের চোখে, প্রেমিকার চোখে নীল আকাশ ,নীল সমুদ্র দেখার মত নয়। একেবারে সত্যি সত্যি :D

c, c++ programming

মনে করুন আপনি নিচের মত দু’টি পূর্ণ সংখ্যার ভেরিয়েবল ডিক্লেয়ার করলেন
int a ;
int b ;
এ দু’টি লাইন লেখার করণে কম্পিউটার এ a ও b এর অধীনে দু’টি মেমরী এড্রেস সৃষ্টি হবে, যেটিকে আপনি নিচের চিত্রের মত চিন্তা করতে পারেন :
a
b
আপনি কি কখনো এই মেমরী এড্রেস নিজের চোখে দেখেছেন? আপনি চাইলেই দেখতে পারবেন নিচের কোডটি রান করেঃ
টেকটিউনস কোড হাইলাইটার - কোড কপি করতে কোডের উপর ডাবল ক্লিক করুন
1
2
3
4
5
6
7
8
#include<stdio.h>
int main()
{
    int a,b;
    printf("Address of a = %u \n",&a);
    printf("Address of b = %u",&b);
    return 0;
 }

output

Address of a = 2686748
Address of b = 2686744
এখানে, %u দিয়ে মেমরী এড্রেস প্রিন্ট করা হয়েছে। a এর মেমরী এড্রেস বুঝাতে a এর আগে & ব্যবহৃত হয়েছে। এখেনে একটি ব্যপার লক্ষ্য করুন, 2686748 এবং 2686744 সংখ্যা দুটির পার্থক্যঃ 4. অর্থাৎ int টাইপের ভেরিয়েবলের জন্য চার বাইট মেমরী তৈরি হয়। উল্লেখ্য যে, আমার কম্পিউটারটি ৩২ বিট অপারেটিং সিস্টেমের। ৬৪ বিট অপারেটিং সিস্টেমে উপরের প্রোগ্রামটি রান করলে সংখ্যা দুটির পার্থক্য হবেঃ ৮
আরেকটি ব্যাপার, আপনার কম্পিউটারটি ৩২ বিটের হলেও এই প্রোগ্রামটি রান করলে 2686748 এবং 2686744 আউটপুট পাবেন না। কারন প্রোগ্রামটা রান করার সময় আমার কম্পিউটারে যেই মেমরী এড্রেস ফাকা ছিল সেখান থেকে প্রথম চার বাইট a এর জন্য নির্ধারিত হয়েছে এবং পরবর্তী চার বাইট b এর জন্য নির্ধারিত হয়েছে। আমার কম্পিউটারের ফ্রি মেমরী স্পেস শুরু হয়েছে 2686748 থেকে আপনার কম্পিউটারের ফ্রি মেমরী স্পেসও 2686748 থেকে শুরু হবে এটার সম্ভাবনা খুবই কম। তাই কোন প্রগ্রামের আউটপুট বইয়ের সাথে যদি না মিলে, তার মানে প্রোগ্রাম ভুল - সবসময় কিন্তু এটা সত্যি নয়।
প্রোগ্রামিং এর আরও মজার মজার তথ্য পেতে আমাদের ফেইসবুক পেইজ এ লাইক দিয়ে একটিভ থাকুন অথবাএখানে ক্লিক করুন।
Previous
Next Post »