অপারেটর ডেটার উপর একটি অপারেশন করে। তারা নিম্নলিখিত −
শ্রেণীবদ্ধ করা হয়- পাটিগণিত অপারেটর।
- রিলেশনাল অপারেটর।
- লজিক্যাল অপারেটর।
- অ্যাসাইনমেন্ট অপারেটর।
- বৃদ্ধি এবং হ্রাস অপারেটর।
- বিটওয়াইজ অপারেটর।
- শর্তসাপেক্ষ অপারেটর।
- বিশেষ অপারেটর।
পাটিগণিত অপারেটর
এই অপারেটরগুলি যোগ, বিয়োগ ইত্যাদির মতো গাণিতিক ক্রিয়াকলাপগুলি সম্পাদনের জন্য সংখ্যাসূচক গণনার (বা) জন্য ব্যবহৃত হয়৷
অপারেটর | বিবরণ | উদাহরণ | a=20,b=10 | আউটপুট |
---|---|---|---|---|
+ | সংযোজন | a+b | 20+10 | 30 |
- | বিয়োগ | a-b | 20-10 | 10 |
* | গুণ | a*b | 20*10 | 200 |
/ | বিভাগ | a/b | 20/10 | 2(ভাগফল) |
% | মডুলার বিভাগ | a%b | 20%10 | 0 (অবশিষ্ট) |
প্রোগ্রাম
পাটিগণিত অপারেটর -
-এর জন্য C প্রোগ্রামটি নিচে দেওয়া হল#include<stdio.h> main ( ){ int a= 20, b = 10; printf (" %d", a+b); printf (" %d", a-b); printf (" %d", a*b); printf (" %d", a/b); printf (" %d", a%b); }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
30 10 200 20
রিলেশনাল অপারেটর
এগুলি দুটি অভিব্যক্তির তুলনা করার জন্য ব্যবহৃত হয়৷
অপারেটর | বিবরণ | উদাহরণ | a=20,b=10 | আউটপুট |
---|---|---|---|---|
< | এর চেয়ে কম | a | 10<20 | 1 |
<= | এর থেকে কম (বা) সমান | a<=b | 10<=20 | 1 |
> | এর চেয়ে বড় | a>b | 10>20 | 0 |
>= | এর চেয়ে বড় (বা) সমান | a>=b | 10>=20 | 0 |
== | সমান | a==b | 10==20 | 0 |
!= | এর সমান নয় | a!=b | 10!=20 | 1 |
একটি রিলেশনাল এক্সপ্রেশনের আউটপুট হয় সত্য (1) (অথবা) মিথ্যা (0)।
প্রোগ্রাম
রিলেশনাল অপারেটর -
এর জন্য C প্রোগ্রামটি নিচে দেওয়া হল#include<stdio.h> main ( ){ int a= 10, b = 20; printf (" %d", a<b); printf (" %d", a<=b); printf (" %d", a>b); printf (" %d", a>=b); printf (" %d", a = =b); printf (" %d", a ! =b); }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
1 1 0 0 0 1 1 1
লজিক্যাল অপারেটর
এগুলি যৌক্তিকভাবে 2 (বা) আরও অভিব্যক্তিকে একত্রিত করতে ব্যবহৃত হয়।
তারা যৌক্তিক এবং (&&) যৌক্তিক বা (|| ) এবং যৌক্তিক নয় (!)
exp1 | exp2 | exp1&&exp2 |
---|---|---|
T | T | T |
T | F | F |
F | T | F |
F | F | F |
যৌক্তিক এবং(&&)
exp1 | exp2 | exp1||exp2 |
---|---|---|
T | T | T |
T | F | T |
F | T | T |
F | F | F |
যৌক্তিক বা(||)
exp | !exp |
---|---|
T | F |
F | T |
যৌক্তিক নয়(!)
অপারেটর | বিবরণ | উদাহরণ | a=20,b=10 | আউটপুট |
---|---|---|---|---|
&& | যৌক্তিক এবং | (a>b)&&(a(10>20)&&(10<30) | 0 | |
|| | যৌক্তিক বা | (a>b)||(a<=c) | (10>20)||(10<30) | 1 |
! | যৌক্তিক নয় | !(a>b) | !(10>20) | 1 |
প্রোগ্রাম
লজিক্যাল অপারেটর -
-এর জন্য C প্রোগ্রামটি নিচে দেওয়া হল#include<stdio.h> main ( ){ int a= 10, b = 20, c= 30; printf (" %d", (a>b) && (a<c)); printf (" %d", (a>b) | | (a<c)); printf (" %d", ! (a>b)); }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
0 1 1
অ্যাসাইনমেন্ট অপারেটর
এটি একটি ভেরিয়েবলের একটি মান নির্ধারণ করে। অ্যাসাইনমেন্ট অপারেটরগুলির প্রকারগুলি হল −
- সাধারণ অ্যাসাইনমেন্ট।
- সাধারণ অ্যাসাইনমেন্ট।
অপারেটর | বিবরণ | উদাহরণ |
---|---|---|
= | সাধারণ অ্যাসাইনমেন্ট | a=10 |
+=,-=,*=,/=,%= | কম্পাউন্ড অ্যাসাইনমেন্ট | a+=10"a=a+10 a=10"a=a-10 |
প্রোগ্রাম
অ্যাসাইনমেন্ট অপারেটর -
এর জন্য সি প্রোগ্রামটি নিচে দেওয়া হল#include<stdio.h> main ( ){ int a= 10,; printf (" %d", a); printf (" %d", a+ =10); }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
10 20
বৃদ্ধি এবং হ্রাস অপারেটর
আসুন আমরা বুঝতে পারি ইনক্রিমেন্ট অপারেটর কি।
ইনক্রিমেন্ট অপারেটর (++)
এই অপারেটর একটি ভেরিয়েবলের মান 1
দ্বারা বৃদ্ধি করেদুটি প্রকারের মধ্যে রয়েছে −
- প্রি ইনক্রিমেন্ট
- পোস্ট ইনক্রিমেন্ট
যদি আমরা অপারেন্ডের আগে ইনক্রিমেন্ট অপারেটর রাখি, তবে এটি প্রি-ইনক্রিমেন্ট। পরবর্তীতে, মানটি প্রথমে বৃদ্ধি করা হয় এবং এর উপর পরবর্তী অপারেশন করা হয়।
উদাহরণস্বরূপ,
z = ++a; // a= a+1 z=a
যদি আমরা অপারেন্ডের পরে ইনক্রিমেন্ট অপারেটর রাখি, তবে এটি পোস্ট ইনক্রিমেন্ট এবং অপারেশন সঞ্চালিত হওয়ার পরে মানটি বৃদ্ধি পায়।
উদাহরণস্বরূপ,
z = a++; // z=a a= a+1
উদাহরণ
ইনক্রিমেন্ট অপারেটর -
এর জন্য সি প্রোগ্রামটি নিচে দেওয়া হলপ্রোগ্রাম | প্রোগ্রাম |
---|---|
main() { int a= 10, z; z= ++a; printf("z=%d", z); printf("a=%d", a); } | main() { int a= 10, z; z= a++;printf("z=%d", z); printf("a=%d", a); } |
আউটপুট | আউটপুট |
z= 11 a=11 | z= 10 a=11 |
ডিক্রিমেন্ট অপারেটর − (- -)
এটি একটি ভেরিয়েবলের মান 1 দ্বারা হ্রাস করতে ব্যবহৃত হয়।
দুই প্রকার হল −
- প্রি ডিক্রিমেন্ট
- কমানোর পরে
যদি ডিক্রিমেন্ট অপারেটরটি অপারেন্ডের আগে স্থাপন করা হয়, তবে একে প্রি ডিক্রিমেন্ট বলে। এখানে, মানটি প্রথমে হ্রাস করা হয় এবং তারপরে, এটিতে অপারেশন করা হয়।
উদাহরণস্বরূপ,
z = - - a; // a= a-1 z=a
যদি অপারেন্ডের পরে ডিক্রিমেন্ট অপারেটর স্থাপন করা হয়, তবে তাকে পোস্ট ডিক্রিমেন্ট বলে। এখানে, অপারেশন সঞ্চালিত হওয়ার পরে মান হ্রাস করা হয়।
উদাহরণস্বরূপ,
z = a--; // z=a a= a-1
main() { int a= 10, z; z= --a; printf("z=%d", z); printf("a=%d", a); } | main() { int a= 10, z; z= a--; printf("z=%d", z); printf("a=%d", a); } |
আউটপুট | আউটপুট |
z= 9 a=9 | z= 10 a=9 |
বিটওয়াইজ অপারেটর
বিটওয়াইজ অপারেটররা বিটগুলিতে কাজ করে।
অপারেটর | বিবরণ |
---|---|
& | বিটওয়াইজ এবং |
| | বিটওয়াইজ বা |
^ | বিটওয়াইজ XOR |
<< | বাম স্থানান্তর |
>> | ডান স্থানান্তর |
~ | একজনের পরিপূরক |
Bitwise AND | ||
---|---|---|
a | b | a&b |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
বিটওয়াইজ বা | ||
---|---|---|
a | b | a|b |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Bitwise XOR | ||
---|---|---|
a | b | a^b |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
প্রোগ্রাম
বিটওয়াইজ অপারেটর -
-এর জন্য সি প্রোগ্রামটি নিচে দেওয়া হল#include<stdio.h> main ( ){ int a= 12, b = 10; printf (" %d", a&b); printf (" %d", a| b); printf (" %d", a ^ b); }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
8 14 6
বাম স্থানান্তর
যদি মানটি একবার স্থানান্তরিত করা হয় তবে এর মান দ্বিগুণ হয়ে যায়।
উদাহরণস্বরূপ, a =10, তারপর a<<1 =20
ডান স্থানান্তর
যদি একটি ভেরিয়েবলের মান একবার ডানে স্থানান্তরিত হয়, তাহলে এর মান মূল মানের অর্ধেক হয়ে যায়।
উদাহরণস্বরূপ, a =10, তারপর a>>1 =5
একটি পরিপূরক
এটি সবগুলোকে শূন্যে এবং শূন্যকে এক-এ রূপান্তরিত করে।
উদাহরণস্বরূপ, a =5, তারপর ~a=2 [শুধুমাত্র যদি 4 বিট বিবেচনা করা হয়]।
প্রোগ্রাম
বিটওয়াইজ অপারেটর -
-এর জন্য আরেকটি সি প্রোগ্রাম নিচে দেওয়া হল#include<stdio.h> main ( ){ int a= 20, b = 10,c=10; printf (" %d", a<<1); printf (" %d", b>>1); printf (" %d", ~c); }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
40 5 11
স্বাক্ষরিত
1 এর পরিপূরক =- [ নম্বর +1 দিন]
উদাহরণস্বরূপ, ~10 =- [10+1] =-11
~-10 =- [-10+1] =9
আনসাইন করা হয়নি
1 এর পরিপূরক =[65535 – দেওয়া নেই]
শর্তাধীন অপারেটর (? :)
একে টারনারি অপারেটরও বলা হয়।
সিনট্যাক্স নিম্নরূপ -
exp1? exp2: exp3
exp1 সত্য হলে, exp2 মূল্যায়ন করা হয়। অন্যথায়, exp3 মূল্যায়ন করা হয়। অথবা if-else আকারে।
if (exp1) exp2; else exp3;
প্রোগ্রাম
শর্তসাপেক্ষ অপারেটর -
-এর জন্য C প্রোগ্রামটি নিচে দেওয়া হল#include<stdio.h> main ( ){ int z; z = (5>3) ? 1:0; printf ("%d",z); }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
বিশেষ অপারেশন
কিছু বিশেষ ক্রিয়াকলাপ হল কমা, অ্যাম্পারস্যান্ড (&), অপারেটরের আকার।
- কমা ( , ) - এটি ভেরিয়েবলের জন্য বিভাজক হিসাবে ব্যবহৃত হয়। উদাহরণ স্বরূপ; a=10, b=20
- ঠিকানা (&) − এটি একটি ভেরিয়েবলের ঠিকানা পায়।
- এর আকার ( ) − এটি বাইটে ভেরিয়েবলের ডেটা টাইপের আকার পেতে ব্যবহৃত হয়।
প্রোগ্রাম
বিশেষ ক্রিয়াকলাপের জন্য সি প্রোগ্রামটি নিচে দেওয়া হল -
#include<stdio.h> main ( ){ int a=10; float b=20 ; printf (" a= %d b=%f", a,b ); printf (" a address =%u\n " , &a ) ; printf (" b address =%u\n" ,&b ) ; printf ("a size = %ld\n" , sizeof (a) ) ; printf ( "b size = %ld ", sizeof (b) ) ; }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
a=10 b=20.00 Address of a =1 2 3 4 Address of b = 5 6 7 8 Only for this example Size of a = 4 bytes Size of b = 4 bytes