কিছু সমস্যায় আমরা printf() স্টেটমেন্ট পাই যেটিতে ++ অপারেটর থাকে। কম্পিটিটিভ এক্সামিনেশনের কিছু প্রশ্নে এই টাইপের কোডের আউটপুট বের করতে বলা হয়। এই সেকশনে আমরা সেরকম একটি প্রশ্নের উদাহরণ দেখব এবং আউটপুট কী হবে তা বুঝতে চেষ্টা করব।
উদাহরণ কোড
#include<stdio.h> int main() { volatile int x = 20; printf("%d %d\n", x, x++); x = 20; printf("%d %d\n", x++, x); x = 20; printf("%d %d %d ", x, x++, ++x); return 0; }
এখন আমরা চেষ্টা করব আউটপুট অনুমান করতে। অধিকাংশ কম্পাইলার printf()-এর প্রতিটি প্যারামিটার ডান থেকে বাম নেয়। তাই প্রথম printf()-এ, লাস্ট প্যারামিটার হল x++, তাই এটি প্রথম এক্সিকিউট হবে, এটি ২০ প্রিন্ট করবে, তারপর মান ২০ থেকে ২১-এ বাড়াবে। এখন সেকেন্ড লাস্ট আর্গুমেন্ট প্রিন্ট করবে এবং ২১ দেখাবে। অন্য লাইনগুলোও इसी ম্যানারে ক্যালকুলেট হবে। ++x-র জন্য, এটি প্রিন্ট করার আগে মান বাড়াবে, আর x++-র জন্য, এটি প্রথমে মান প্রিন্ট করবে, তারপর মান বাড়াবে।
বাল্ট্রের বুঝতে আউটপুট চেক করুন।
আউটপুট
21 20 20 20 22 21 21