সমস্যা
সি প্রোগ্রামের সাহায্যে অ্যারে পোস্ট ও প্রি-ইনক্রিমেন্ট ধারণা ব্যাখ্যা।
সমাধান
ইনক্রিমেন্ট অপারেটর (++) −
এটি একটি ভেরিয়েবলের মান ১ বাড়াতে ব্যবহৃত হয়।
ইনক্রিমেন্ট অপারেটরের দুটি ধরন আছে − প্রি-ইনক্রিমেন্ট এবং পোস্ট-ইনক্রিমেন্ট।
প্রি-ইনক্রিমেন্টে ইনক্রিমেন্ট অপারেটর অপারেন্ডের আগে থাকে এবং মান প্রথমে বাড়ে, তারপর অপারেশন সম্পন্ন হয়।
eg: z = ++a; a= a+1 z=a
পোস্ট-ইনক্রিমেন্টে ইনক্রিমেন্ট অপারেটর অপারেন্ডের পরে থাকে এবং অপারেশন সম্পন্ন হওয়ার পর মান বাড়ে।
eg: z = a++; z=a a= a+1
আসুন একটি উদাহরণ বিবেচনা করি প্রি- এবং পোস্ট-ইনক্রিমেন্ট ব্যবহার করে নির্দিষ্ট মেমোরি লোকেশন অ্যাক্সেস করার জন্য।
সাইজ ৫ এর একটি অ্যারে ডিক্লেয়ার করুন এবং কম্পাইল টাইম ইনিশিয়ালাইজেশন করুন। তারপর 'a' ভেরিয়েবলে একটি প্রি-ইনক্রিমেন্টেড মান অ্যাসাইন করার চেষ্টা করুন।
a=++arr[1] // arr[1]=arr[1]+1 a=arr[1] b=arr[1]++// b=arr[1] arr[1]+1
উদাহরণ ১
#include<stdio.h> int main(){ int a, b, c; int arr[5] = {1, 2, 3, 25, 7}; a = ++arr[1]; b = arr[1]++; c = arr[a++]; printf("%d--%d--%d", a, b, c); return 0; }আউটপুট
4--3--25
ব্যাখ্যা
here, a = ++arr[1]; i.e a = 3 //arr[2]; b = arr[1]++; i.e b = 3 //arr[2]; c = arr[a++]; i.e c = 25 //arr[4]; printf("%d--%d--%d",a, b, c); printf("%d--%d--%d",4, 3, 25); Thus 4--3--25 is outputtedউদাহরণ ২
প্রি- এবং পোস্ট-ইনক্রিমেন্টেড অ্যারে সম্পর্কে আরও জানার জন্য আরেকটি উদাহরণ বিবেচনা করুন।
#include<stdio.h> int main(){ int a, b, c; int arr[5] = {1, 2, 3, 25, 7}; a = ++arr[3]; b = arr[3]++; c = arr[a++]; printf("%d--%d--%d", a, b, c); return 0; }আউটপুট
27--26—0