সি বা সি++-এ কমা (',') বিভিন্ন উদ্দেশ্যে ব্যবহৃত হয়। এখানে দেখব সেগুলো কীভাবে ব্যবহার করা হয়।
কমা অপারেটর হিসেবে (Comma as an Operator):
- কমা অপারেটর একটি বাইনারি অপারেটর, যা প্রথম অপারেন্ড ইভ্যালুয়েট করে, ফলাফল ডিসকার্ড করে, তারপর দ্বিতীয় অপারেন্ড ইভ্যালুয়েট করে এবং এর মান রিটার্ন করে। সি/সি++-এ কমা অপারেটরের প্রেসিডেন্স সবচেয়ে কম।
উদাহরণ
#include <stdio.h>
int main() {
int x = (50, 60); // 60 অ্যাসাইন হবে
int y = (func1(), func2()); // func1() চলে, তারপর func2() চলে, y = func2() রিটার্ন
}
কমা সেপারেটর হিসেবে (Comma as a Separator):
- ফাংশন কল বা ডিক্লেয়ারেশনে এটি সেপারেটর হিসেবে কাজ করে। এটি কমা অপারেটর মতো নয়। সেপারেটর হিসেবে কমা থাকলে কমা দিয়ে আলাদা করা সব আইটেম ব্যবহার হয়, কিন্তু অপারেটর হিসেবে শুধু শেষটিই পাওয়া যায়।
উদাহরণ
#include <stdio.h>
int main() {
int x = 5, y = 10; // ডিক্লেয়ারেশনে সেপারেটর
void function(x, y); // ফাংশন প্যারামিটারে সেপারেটর
}
নিচের প্রোগ্রাম কমা অপারেটর কীভাবে কাজ করে তা দেখাবে।
উদাহরণ
#include <stdio.h>
int main() {
int a = 50;
int b = (a++, ++a); // a++ (50), ++a (52) -> b = 52
printf("%d", b);
}
আউটপুট
52