কম্পিউটার টিউটোরিয়াল

C/C++-এ কমা অপারেটর सम्बन्धিত প্রশ্ন ও উত্তর


C/C++-এ কমা অপারেটরের দুটি প্রসঙ্গ রয়েছে:

  • সেপারেটর (Separator) হিসেবে: ভেরিয়েবল ডিক্লেয়ারেশনে বা ফাংশন আর্গুমেন্টে 알াদা করতে।
  • অপারেটর (Operator) হিসেবে: বাইনারি অপারেটর { , } — এটি প্রথম এক্সপ্রেশনকে ইভ্যালুয়েট করার পর ফেলে দেয় এবং দ্বিতীয় এক্সপ্রেশনের মান ব্যবহার করে। এই অপারেটরটির প্রসিডেন্স সবচেয়ে কম।

নিচের কোডগুলো দেখে আউটপুট অনুমান করুন:

উদাহরণ ১

#include <stdio.h>
int main(void) {
    char ch = 'a', 'b', 'c';
    printf("%c", ch);
    return 0;
}

আউটপুট

এখানে এরর আসবে কারণ কমা এখানে সেপারেটর হিসেবে কাজ করছে।

prog.c: In function ‘main’:
prog.c:5:20: error: expected identifier or ‘(’ before ‘b’
     char ch = 'a', 'b', 'c';
                    ^~~

উদাহরণ ২

#include <stdio.h>
int main(void) {
    char ch;
    ch = 'a','b','c';
    printf("%c", ch);
    return 0;
}

আউটপুট

a আউটপুট হবে। কারণ এখানে কমা অপারেটর হিসেবে কাজ করছে, কিন্তু এর প্রসিডেন্স অ্যাসাইনমেন্ট অপারেটরের নিচে, তাই 'a' অ্যাসাইন হয়ে যায়।

a

উদাহরণ ৩

#include <stdio.h>
int f1() { return 43; }
int f2() { return 123; }
int main(void) {
    int a;
    a = (f1() , f2());
    printf("%d", a);
    return 0;
}

আউটপুট

123 আউটপুট হবে। কারণ কমা অপারেটর ব্র্যাকেটের ভেতরে থাকায় সেকেন্ড এক্সপ্রেশন ইভ্যালুয়েট হয়ে তার মান দেয়।

123

  1. C/C++-তে putwchar() ফাংশন

  2. C/C++-তে memcpy() ফাংশন

  3. C/C++ টেনারি অপারেটর সম্পর্কে কিছু আকর্ষণীয় পর্যবেক্ষণ

  4. AA ট্রি: C/C++-তে ব্যালেন্সড ট্রি ডেটা স্ট্রাকচার