সি অপারেটর প্রিসিডেন্স এবং অ্যাসোসিয়েটিভিটি কী?

Si Aparetara Prisidensa Ebam A Yasosiyetibhiti Ki



অপারেটরগুলি সাধারণত সি-তে বিভিন্ন গাণিতিক এবং যৌক্তিক ক্রিয়াকলাপ সম্পাদন করতে ব্যবহৃত হয়। সি প্রোগ্রামিং ভাষা একটি নির্দিষ্ট ক্রম অনুসরণ করে যা নামে পরিচিত অপারেটর অগ্রাধিকার এবং সহযোগীতা কার্যকর করার সময় অপারেশনের ক্রম নির্ধারণ করতে। এর নিয়ম অপারেটর অগ্রাধিকার এবং সহযোগীতা ত্রুটি-মুক্ত কোড লিখতে সাহায্য করে এবং কোড পঠনযোগ্যতা বাড়ায়।

এই নিবন্ধটি আপনাকে সি-তে সহযোগীতা এবং অপারেটর অগ্রাধিকার সম্পর্কে শিখতে সহায়তা করার জন্য একটি বিস্তৃত টিউটোরিয়াল প্রদান করে।

সি-তে অপারেটর অগ্রাধিকার

অপারেটরের অগ্রাধিকার অভিব্যক্তি মূল্যায়ন করার সময় যে ক্রমটিতে বেশ কয়েকটি অপারেটরকে মূল্যায়ন করা হয় তা বর্ণনা করে। উদাহরণস্বরূপ, যদি একটি অভিব্যক্তিতে যোগ এবং গুণন উভয় অপারেটর থাকে, তাহলে কোনটি প্রথমে মূল্যায়ন করা উচিত? উত্তরটি সহজ, সি এই ধরনের অস্পষ্টতা সমাধানের জন্য নির্দিষ্ট নিয়ম অনুসরণ করে, যা সাধারণত হিসাবে পরিচিত অপারেটর অগ্রাধিকার . সি তে, অপারেটর অগ্রাধিকার ইউনারি অপারেটর থেকে ত্রিনারি কন্ডিশনাল অপারেটর পর্যন্ত 17টি স্তরে শ্রেণীবদ্ধ করা হয়েছে। সর্বাধিক ব্যবহৃত অপারেটর যেমন পাটিগণিত অপারেটর, রিলেশনাল অপারেটর, লজিক্যাল অপারেটর এবং বিটওয়াইজ অপারেটরগুলি সি স্ট্যান্ডার্ড অনুসরণ করে অপারেটর অগ্রাধিকার প্রোটোকল







অগ্রাধিকার এক্সপ্রেশন মূল্যায়ন করার সময় কোন অপারেটরদের অন্যদের চেয়ে বেশি অগ্রাধিকার রয়েছে তা নির্দেশ করে। সি প্রোগ্রামিং ভাষার বিভিন্ন ধরনের অপারেটরের বিভিন্ন মাত্রা রয়েছে অগ্রাধিকার . উদাহরণস্বরূপ, বাইনারি অপারেটরদের তুলনায় ইউনারি অপারেটরদের অগ্রাধিকার বেশি। নিচের ক্রমবর্ধমান ক্রম অনুসারে সাজানো অপারেটরদের একটি তালিকা অগ্রাধিকার :



অপারেটর অপারেটর এর অর্থ সহযোগীতা
()
[]
->
.
কার্যকরী কল

অ্যারে উপাদান রেফারেন্স



পরোক্ষ সদস্য নির্বাচন





সরাসরি সদস্য নির্বাচন

বাম থেকে ডান
!
~
+
-
++
-
এবং
*
আকার
(প্রকার)
যৌক্তিক অস্বীকার

Bitwise (1's) পরিপূরক

ইউনারি প্লাস

ইউনারি মাইনাস

বৃদ্ধি

হ্রাস

ডিরেফারেন্স (ঠিকানা)

পয়েন্টার রেফারেন্স

একটি বস্তুর আকার প্রদান করে

টাইপকাস্ট (রূপান্তর)

ডান থেকে বাম
*
/
%
গুন করুন

বিভক্ত করা

অবশিষ্ট

বাম থেকে ডান
+
-
বাইনারি প্লাস (সংযোজন)

বাইনারি বিয়োগ (বিয়োগ)

বাম থেকে ডান
<<
>>
বাম স্থানান্তর

ডান স্থানান্তর

বাম থেকে ডান
<
<=
>
>=
থেকে কম

কম বা সমান

অপেক্ষা বৃহত্তর

বৃহত্তর অথবা সমান

বাম থেকে ডান
==
!=
সমান

অসমান

বাম থেকে ডান
এবং বিটওয়াইজ এবং বাম থেকে ডান
^ বিটওয়াইজ এক্সক্লুসিভ OR বাম থেকে ডান
| বিটওয়াইজ বা বাম থেকে ডান
&& যৌক্তিক এবং বাম থেকে ডান
|| যৌক্তিক OR বাম থেকে ডান
?: শর্তসাপেক্ষ অপারেটর ডান থেকে বাম
=
*=
/=
%=
+=
-=
&=
^=
|=
<<=
>>=
সহজ অ্যাসাইনমেন্ট

পণ্য বরাদ্দ করুন

ভাগফল বরাদ্দ করুন

অবশিষ্ট বরাদ্দ করুন

যোগফল বরাদ্দ করুন

পার্থক্য বরাদ্দ করুন

bitwise বরাদ্দ করুন এবং

বিটওয়াইজ XOR বরাদ্দ করুন

বিটওয়াইজ বা বরাদ্দ করুন

বাম শিফট বরাদ্দ করুন

ডান স্থানান্তর বরাদ্দ করুন

ডান থেকে বাম
, ভাবের বিভাজক বাম থেকে ডান

এই নিয়মগুলি কম্পাইলারকে একই এক্সপ্রেশনে একাধিক অপারেটরের সাথে এক্সপ্রেশনের মূল্যায়ন করার বিষয়ে গাইড করে। গুন অপারেটর, উদাহরণস্বরূপ, A + B * C সমীকরণে যোগ অপারেটরের চেয়ে বেশি অগ্রাধিকার রয়েছে অগ্রাধিকার নিয়ম অতএব, কম্পাইলার ফলাফলে A যোগ করার আগে প্রথমে B * C অভিব্যক্তিটি মূল্যায়ন করবে।

এর একটি উদাহরণ দেখা যাক অপারেটর অগ্রাধিকার কোডের মাধ্যমে।

# অন্তর্ভুক্ত করুন

int প্রধান ( ) {

int = 43 , = এগারো , = 16 , d = 31 ;

int ফলাফল = ++ * -- + / -- d ;

printf ( 'a = %d \n ' , ) ;

printf ( 'b = %d \n ' , ) ;

printf ( 'c = %d \n ' , ) ;

printf ( 'd = %d \n ' , d ) ;

printf ( 'ফলাফল = %d \n ' , ফলাফল ) ;

ফিরে 0 ;

}

চারটি ভেরিয়েবল a, b, c, এবং d, উপরের কোডে ঘোষণা করা হয়েছে এবং তাদের প্রাথমিক মান হল 43, 11, 16, এবং 31 সেই অনুযায়ী। তারপর, এটি একটি অভিব্যক্তিতে এই ভেরিয়েবলগুলিতে বিভিন্ন পাটিগণিত এবং অ্যাসাইনমেন্ট অপারেটর প্রয়োগ করে। এক্সপ্রেশনটি প্রাক-বৃদ্ধি অপারেটর ++a ব্যবহার করে a-এর মান বৃদ্ধি করে, পোস্ট-ডিক্রিমেন্ট অপারেটর b– দ্বারা ফলাফলকে গুণ করে, এবং তারপর d-এর পূর্ব-হ্রাসকৃত মান দ্বারা বিভাজক c-এ ফলাফল যোগ করে। (প্রি-ডিক্রিমেন্ট অপারেটর -d ব্যবহার করে)। পরিবর্তনশীল ফলাফল তারপর এই অভিব্যক্তির মোট ফলাফল ধরে রাখতে ব্যবহৃত হয়।

আউটপুট

সি-তে সহযোগীতা

সহযোগীতা একই অগ্রাধিকার সহ একটি অভিব্যক্তির সময় অপারেটরদের মূল্যায়ন করা হয় এমন ক্রমকে বোঝায়। বাম থেকে ডান এবং ডান থেকে বাম সহযোগীতা সি-তে সহযোগীতার দুটি রূপ। যদি দুটি অপারেটর একই থাকে অগ্রাধিকার , তারা বাম থেকে ডানে বাম থেকে ডান ধারণা অনুযায়ী মূল্যায়ন করা হয় সহযোগীতা . তবুও, যদি একই অগ্রাধিকার পরিলক্ষিত হয়, তাহলে অপারেটরদের মূল্যায়ন করা হয় ডান থেকে বামে ডান থেকে বাম অনুযায়ী সহযোগীতা .

উদাহরণস্বরূপ, ++ ইনক্রিমেন্ট অপারেটরের ডান-থেকে-বামে রয়েছে সহযোগীতা , যার অর্থ বৃদ্ধি অপারেটর পরিবর্তনশীলের পরে মূল্যায়ন করা হয়। যেখানে যৌক্তিক AND অপারেটর একটি বাম থেকে ডান আছে সহযোগীতা , যার মানে অপারেটরকে বাম থেকে ডানে মূল্যায়ন করা হয়।

# অন্তর্ভুক্ত করুন

int main() {

int a = 6 , খ = 3 , গ = 2 ;

int ফলাফল = a * b / c;

printf( 'ফলাফল = %d \n ' , ফলাফল);

ফিরে 0 ;

}

তিনটি ভেরিয়েবল a, b, এবং c এই কোডে ঘোষণা করা হয়েছে, এবং সেগুলি যথাক্রমে 6, 3, এবং 2 এ শুরু করা হয়েছে। তারপর, এটি একটি অভিব্যক্তিতে এই ভেরিয়েবলগুলিতে গুণ এবং ভাগের ক্রিয়াকলাপ প্রয়োগ করে। গুণ এবং ভাগ তাদের উপর ভিত্তি করে C তে বাম থেকে ডানে স্থান দেওয়া হয় সহযোগীতা যেহেতু তাদের একই অগ্রাধিকার স্তর রয়েছে। এটি নির্দেশ করে যে বিভাজন ক্রিয়াকলাপটি প্রথমে আসে, তারপরে অভিব্যক্তিটি মূল্যায়ন করার সময় গুণন অপারেশন, a * b / c।

আউটপুট

উপসংহার

অপারেটরের অগ্রাধিকার এবং সহযোগীতা সি প্রোগ্রামিং-এর গুরুত্বপূর্ণ ধারণা যা এক্সপ্রেশনের সঞ্চালনের ক্রম নির্ধারণ করতে সাহায্য করে। সর্বোচ্চ সঙ্গে অপারেটর অগ্রাধিকার স্তর প্রথম মূল্যায়ন করা হয় এবং সহযোগীতা একই অগ্রাধিকার সহ একাধিক অপারেটর ব্যবহার করা হলে নিয়মগুলি ক্রম নির্ধারণ করতে সহায়তা করে। বোঝাপড়া অপারেটর অগ্রাধিকার এবং সহযোগীতা জটিল প্রোগ্রাম ডিজাইন করার সময় অপরিহার্য, এবং এটি কম ত্রুটি সহ ক্লিনার এবং আরও দক্ষ কোড তৈরি করতে সাহায্য করে।