সি অপারেটর এবং অপারেন্ড (C Operator & Operand), অপারেটর প্রাধান্য টেবিল(Precedence of Operators in C) -07

অপারেটর এবং অপারেন্ডঃ

অপারেটর গুলো যে ভ্যারিয়েবল বা যে ডেটার উপর কাজ করে, তাকে আমরা বলি অপারেন্ড(Operand)।  কিছু কিছু অপারেটরের জন্য একটা অপারেন্ড লাগে। কিছু কিছু অপারেটরের জন্য লাগে দুইটা অপারেন্ড।
সি-অপারেটরস্ (C-Operators): 
অপারেটর হচ্ছে একটা চিহ্ন যেটা কম্পাইলার (compiler) কে গাণিতিক অথবা লজিকাল কাজ করার জন্য নির্দেশ করে। সি-প্রোগ্রামিং এর অনেক পূর্বনির্ধারিত অপারেটর রয়েছে।
 যেমনঃ
     ১। অ্যারিথ্মেটিক অপারেটর (Arithmetic operator)
     ২। রিলেশনাল অপারেটর (Relational operator)
     ৩। লজিক্যাল অপারেটর (Logical operator)
     ৪। বিট-ওয়াইজ অপারেটর (Bitwise operator)
     ৫। অ্যাসাইনমেন্ট অপারেটর (Assignment operator)
     ৬। অন্যান্য অপারেটর (Misc operator)

অ্যারিথ্মেটিক অপারেটর (arithmetic operator):
নিচে অ্যারিথ্মেটিক অপারেটরের লিস্ট ও উদাহরণ দেওয়া হলো –

ধরা যাক, A = 10, B = 5 


অপারেটর  বিস্তারিত উদাহরণ
        +  যোগ  A + B = 15
          -  বিয়োগ   A - B = 5
          *    গুণ      A * B = 50
         /   ভাগ     A / B = 2
         % ভাগশেষ    A % B = 0
        ++  ইনক্রিমেন্ট   A++ = 11
        -- ডিক্রিমেন্ট  A-- = 9

উদাহরণঃ
#include <stdio.h>
int main()
{
     int a = 11;
     int b = 5;
     int c ;
     c = a + b;
     printf("Line 1 - Value of c is %d ", c );
     c = a - b;
     printf("Line 2 - Value of c is %d ", c );
     c = a * b;
     printf("Line 3 - Value of c is %d ", c );
     c = a / b;
     printf("Line 4 - Value of c is %d ", c );
     c = a % b;
     printf("Line 5 - Value of c is %d ", c );
     c = a++;
     printf("Line 6 - Value of c is %d ", c );
     c = a--;
     printf("Line 7 - Value of c is %d ", c );
     return 0;
}

Output:
Line 1 - Value of c is 16
Line 2 - Value of c is 6
Line 3 - Value of c is 55
Line 4 - Value of c is 2
Line 5 - Value of c is 1
Line 6 - Value of c is 11
Line 7 - Value of c is 12 

রিলেশনাল অপারেটর (relational operator):
নিচে রিলেশনাল অপারেটরের লিস্ট ও উদাহরণ দেওয়া হলো –

ধরা যাক, A = 10, B = 5 


অপারেটর  বিস্তারিত উদাহরণ
       ==   সমান? হ্যাঁ     (A == B)  তাহলে সত্য
        !=     সমান? না  (A != B) তাহলে সত্য
         >        বড়            A > B is true
           ছোট         (A < B) is not true
      >=      বড় অথবা সমান   (A >= B) 
      <=  ছোট অথবা সমান    (A <= B) 
     www.codeshikhi.com


                                       
উদাহরণঃ


 #include <stdio.h>
int main()
{
     int a = 21;
     int b = 10;
     int c ;
     if( a == b ) {
          printf("Line 1 - a is equal to b " );
     } else {
          printf("Line 1 - a is not equal to b " );
     } if ( a < b ) {
          printf("Line 2 - a is less than b " );
     } else {
          printf("Line 2 - a is not less than b " );
     } if ( a > b ) {
          printf("Line 3 - a is greater than b " );
     } else {
          printf("Line 3 - a is not greater than b " );
     }
     /* Lets change value of a and b */
     a = 5; b = 20;
     if ( a <= b ) {
          printf("Line 4 - a is either less than or equal to b " );
     } if ( b >= a ) {
          printf("Line 5 - b is either greater than or equal to b " );
     }
}
Output:
Line 1 - a is not equal to b
Line 2 - a is not less than b
Line 3 - a is greater than b
Line 4 - a is either less than or equal to b
Line 5 - b is either greater than or equal to b


বিট-ওয়াইজ অপারেটর (bitwise operator):
বিট-ওয়াইজ অপারেটরগুলো বিট (Bit) নিয়ে কাজ করে এবং বিট বাই বিট অপারেশন সম্পন্ন করে।
OperatorsMeaning of operators
&Bitwise AND
|Bitwise OR
^Bitwise exclusive OR
~Bitwise complement
<<Shift left
>>Shift right

নিচে & (AND), | (OR) এবং ^ (XOR) এর Truth Table দেওয়া হলো –

P        q     p & q     p | q      p ^ q
0        0      0           0         0
0        1      0           1         1
1        1      1           1         0
1        0      0           1          1

অ্যাসাইনমেন্ট অপারেটর (assignment operator):
নিচে অ্যাসাইনমেন্ট অপারেটরের লিস্ট ও উদাহরণ দেওয়া হলো –

ধরা যাক, A = 10, B = 5 
অপারেটর  বিস্তারিত উদাহরণ
          সিম্পল অ্যাসাইনমেন্ট     C = A + B  তাহলে C = 15
      +=    অ্যাড অ্যান্ড অ্যাসাইনমেন্ট C += A এর  অনুরুপ C = C + A
       -=         সাবট্রাক্ট অ্যান্ড অ্যাসাইনমেন্ট  C -= A এর  অনুরুপ C = C – A
      *=  মাল্টিপ্লাই অ্যান্ড অ্যাসাইনমেন্ট C *= A এর  অনুরুপ C = C * A
      /=      ডিভাইড অ্যান্ড অ্যাসাইনমেন্ট   C /= A এর অনুরুপ C = C / A
      %=  মডুলাস অ্যান্ড অ্যাসাইনমেন্ট  C %= A এর অনুরুপ C = C % A
    <<=লেফ্ট শিফ্ট অ্যান্ড অ্যাসাইনমেন্ট                        C <<= 2 এর অনুরুপ C = C << 2
    >>=        রাইট শিফ্ট অ্যান্ড অ্যাসাইনমেন্ট C >>= 2 এর অনুরুপ C = C >> 2 
     &=               বিটওয়াইজ অ্যান্ড অ্যাসাইনমেন্ট                                             C &= 2 এর অনুরুপ C = C & 2                     
        ^=      বিটওয়াইজ এক্সক্লুসিভ অর অ্যান্ড অ্যাসাইনমেন্ট   C <<= 2 এর  অনুরুপ C = C << 2 
    |=    বিটওয়াইজ ইনক্লুসিভ অর  অ্যান্ড অ্যাসাইনমেন্ট      C |= 2 এর অনুরুপ C = C | 2

Example:


#include <stdio.h>
int main()
{
     int a = 21;
     int c ;
     c = a;
     printf("Line 1 - = Operator Example, Value of c = %d ", c );
     c += a;
     printf("Line 2 - += Operator Example, Value of c = %d ", c );
     c -= a;
     printf("Line 3 - -= Operator Example, Value of c = %d ", c );
     c *= a;
     printf("Line 4 - *= Operator Example, Value of c = %d ", c );
     c /= a;
     printf("Line 5 - /= Operator Example, Value of c = %d ", c );
     c = 200;
     c %= a;
     printf("Line 6 - %= Operator Example, Value of c = %d ", c );
     c <<= 2;
     printf("Line 7 - <<= Operator Example, Value of c = %d ", c );
     c >>= 2; printf("Line 8 - >>= Operator Example, Value of c = %d ", c );
     c &= 2;
     printf("Line 9 - &= Operator Example, Value of c = %d ", c );
     c ^= 2; printf("Line 10 - ^= Operator Example, Value of c = %d ", c );
     c |= 2;
     printf("Line 11 - |= Operator Example, Value of c = %d ", c ); }
Output:
     Line 1 - = Operator Example, Value of c = 21
     Line 2 - += Operator Example, Value of c = 42
     Line 3 - -= Operator Example, Value of c = 21
     Line 4 - *= Operator Example, Value of c = 441
     Line 5 - /= Operator Example, Value of c = 21
     Line 6 - = Operator Example, Value of c = 11
     Line 7 - <<= Operator Example, Value of c = 44
     Line 8 - >>= Operator Example, Value of c = 11
     Line 9 - &= Operator Example, Value of c = 2
     Line 10 - ^= Operator Example, Value of c = 0
     Line 11 - |= Operator Example, Value of c = 2


অন্যান্য অপারেটর সমূহঃ
নিচে অন্যান্য অপারেটরের লিস্ট ও উদাহরণ দেওয়া হলো – 
ধরা যাক, 
int A = 10, B = 5; 
অপারেটর  বিস্তারিত উদাহরণ
   sizeof ()  একটা ভেরিয়েবল মেমরীতে কত বিট জায়গা নেয় sizeof (A)  রিটার্ন করবে 4
        একটা ভেরিয়েবল মেমরীতে কোন অ্যাড্রেসে থাকে  &A  রিটার্ন করবে A  এর অ্যাড্রেস
          *    একটা ভেরিয়েবল যদি অন্য একটা ভেরিয়েবলের অ্যাড্রেস নির্দেশ করে      *B 
       ?: কন্ডিশনাল এক্সপ্রেশন     কন্ডিশনটা সত্য? তাহলে X এর মান : না হলে Y এর মান বসবে(A / B == 2)?true:false
         % ভাগশেষ    A % B = 0

Example:


#include <stdio.h>
main()
{
     int a = 4;
     short b;
     double c;
     int* ptr;
     /* example of sizeof operator */
     printf("Line 1 - Size of variable a = %d ", sizeof(a) );
     printf("Line 2 - Size of variable b = %d ", sizeof(b) );
     printf("Line 3 - Size of variable c= %d ", sizeof(c) );
     /* example of & and * operators */
     ptr = &a;
     /* 'ptr' now contains the address of 'a'*/
     printf("value of a is %d ", a);
     printf("*ptr is %d. ", *ptr);
     /* example of ternary operator */
     a = 10;
     b = (a == 1) ? 20: 30;
     printf( "Value of b is %d ", b );
     b = (a == 10) ? 20: 30;
     printf( "Value of b is %d ", b );
}
Output:
Line 1 - Size of variable a = 4
Line 2 - Size of variable b = 2
Line 3 - Size of variable c= 8
value of a is 4 *ptr is 4.
Value of b is 30
Value of b is 20 

অপারেটর প্রাধান্য টেবিলঃ
নিচে অপারেটরগুলো প্রাধান্য টেবিল উল্লেখ করা হলো –

CategoryOperatorAssociativity
Postfix() [] -> . ++ - -Left to right
Unary+ - ! ~ ++ - - (type)* & sizeofRight to left
Multiplicative* / %Left to right
Additive+ -Left to right
Shift<< >>Left to right
Relational< <= > >=Left to right
Equality== !=Left to right
Bitwise AND&Left to right
Bitwise XOR^Left to right
Bitwise OR|Left to right
Logical AND&&Left to right
Logical OR||Left to right
Conditional?:Right to left
Assignment= += -= *= /= %=>>= <<= &= ^= |=Right to left
Comma,Left to right

Next Topic :
সি কন্সট্যান্টস্ কি? কন্সট্যান্টস্ কত প্রকার ও কি কি? কন্সট্যান্ট নির্ধারণ- What is Constant? Types and Defines of constant in C programming Bangla Tutorial -08

Previous Topic:

ভেরিয়েবলস্ (Variables)কি?ভেরিয়েবলস্ (Variables) এর প্রকারভেদ,ভেরিয়েবল নির্ধারণের নিয়ম - C Programming in Bangla Tutorial-06

0 Response to সি অপারেটর এবং অপারেন্ড (C Operator & Operand), অপারেটর প্রাধান্য টেবিল(Precedence of Operators in C) -07

Post a Comment