目次
1. परिचय
C भाषा प्रणाली प्रोग्रामिङ र एम्बेडेड सिस्टम विकासमा व्यापक रूपमा प्रयोग गरिन्छ, र त्यसमा अपरेटरहरू आधारभूत कार्यहरू गर्नका लागि महत्वपूर्ण तत्व हुन्। यस लेखमा, C भाषाका अपरेटरहरूबारे, आधारभूत प्रयोगबाट उन्नत प्रयोग, त्रुटि ह्यान्डलिङ, अनुकूलन विधिहरू सम्म विस्तृत रूपमा व्याख्या गरिन्छ। अपरेटरको समझलाई गहिरो बनाउँदा, प्रभावकारी प्रोग्रामिङ सम्भव हुन्छ, त्रुटिको उत्पत्ति रोक्दै, राम्रो प्रदर्शनको कोड लेख्न सकिन्छ। साथै, अन्तिम भागमा, अपरेटरको त्रुटि ह्यान्डलिङ र अनुकूलन प्रविधिहरूको बारेमा पनि व्याख्या गरिनेछ, र वास्तविक विकास स्थलमा उपयोगी व्यावहारिक ज्ञान प्रदान गरिनेछ। यस लेखमार्फत, C भाषाका अपरेटरहरूलाई आत्मविश्वासका साथ प्रयोग गर्न सकिनेछ।2. अपरेटरको मूलभूत र प्रकारहरू
अपरेटर भनेको के हो?
अपरेटरहरू C भाषामा डेटा सञ्चालन गर्न प्रयोग हुने चिन्हहरू हुन्। C भाषामा अंकगणितीय अपरेटर, असाइनमेंट अपरेटर, तुलना अपरेटर, तर्कसंगत अपरेटर आदि छन्, र यी प्रोग्रामको तर्क निर्माण गर्न अनिवार्य छन्।अंकगणितीय अपरेटर
अंकगणितीय अपरेटरहरू मूलभूत संख्यात्मक गणनाहरू गर्न प्रयोग गरिन्छ।+
(जोड):a + b
→ दुई संख्याहरूलाई जोड्छ।-
(घटाउ):a - b
→ दुई संख्याहरूलाई घटाउँछ।*
(गुणन):a * b
→ दुई संख्याहरूलाई गुणा गर्छ।/
(भाग):a / b
→ दुई संख्याहरूलाई भाग गर्छ।%
(शेष):a % b
→a
लाईb
ले भाग गर्दा बाँकी शेष फर्काउँछ।
असाइनमेंट अपरेटर
असाइनमेंट अपरेटरहरू मानलाई चलमा असाइन गर्न प्रयोग गरिन्छ।=
(असाइन):a = 5
→ चलa
मा 5 असाइन गर्छ।+=
(जोडी असाइन):a += 2
→a
मा 2 जोड्छ, र परिणामलाईa
मा असाइन गर्छ।-=
(घटाउ असाइन):a -= 1
→a
बाट 1 घटाउँछ, र परिणामलाईa
मा असाइन गर्छ।

तुलना अपरेटर
तुलना अपरेटरहरू दुई मानहरू तुलना गरी परिणाम सत्य वा असत्य फर्काउँछन्।==
(बराबर):a == b
→a
रb
बराबर भएमा सत्य फर्काउँछ।!=
(बराबर छैन):a != b
→a
रb
बराबर नहुनुमा सत्य फर्काउँछ।>
(ठूलो):a > b
→a
b
भन्दा ठूलो भएमा सत्य फर्काउँछ।
तर्कसंगत अपरेटर
तर्कसंगत अपरेटरहरू धेरै सर्तहरूलाई संयोजन गरी निर्णय गर्दा प्रयोग गरिन्छ।&&
(तर्कसंगत AND):a && b
→a
रb
दुवै सत्य भएमा सत्य फर्काउँछ।||
(तर्कसंगत OR):a || b
→a
वाb
मध्ये कुनै एक सत्य भएमा सत्य फर्काउँछ।
sizeof
अपरेटर
sizeof
अपरेटर चल वा डेटा प्रकारले मेमोरीमा ओगट्ने आकार गणना गर्न प्रयोग गरिन्छ। विशेष गरी, संरचना वा एरेको मेमोरी दक्षता अनुकूलन गर्दा उपयोगी हुन्छ।int size = sizeof(int); // int प्रकार सामान्यतया 4 बाइट हुन्छ
साथै, संरचना वा एरेको आकार जाँच्दा पनि उपयोगी हुन्छ।struct example {
int a;
char b;
};
int size = sizeof(struct example); // संरचनाको आकार प्राप्त गर्नुहोस्
एरेको तत्व संख्या गणना गर्ने उदाहरण पनि हेरौं।int arr[10];
int num_elements = sizeof(arr) / sizeof(arr[0]); // एरेको तत्व संख्या गणना
3. प्रत्येक अपरेटरको विवरण र प्रयोग उदाहरण
अंकगणितीय अपरेटरको प्रयोग उदाहरण
#include <stdio.h>
int main() {
int a = 10;
int b = 3;
printf("जोड: %dn", a + b);
printf("घटाउ: %dn", a - b);
printf("गुणन: %dn", a * b);
printf("भाग: %dn", a / b);
printf("शेष: %dn", a % b);
return 0;
}
यो कोडले अंकगणितीय अपरेटरहरूको आधारभूत प्रयोग उदाहरण देखाउँछ। भाग गर्दा, पूर्णांकहरू बीचको अपरेसनमा दशमलव भाग काटी निस्किन्छ भन्ने कुरा ध्यान दिनु आवश्यक छ।4. अपरेटरको प्राथमिकता र संयोजन नियम
演算子の優先順位は、複数の演算子が一つの式に混在する場合に、どの順序で計算が行われるかを決定します。また、結合規則(左結合、右結合)は、同じ優先順位の演算子がどちらから評価されるかを決めます।उदाहरण प्राथमिकता
int a = 2 + 3 * 4; // परिणाम 14 हो
この式では、掛け算が足し算よりも優先されるため、結果は14
となります。もし足し算を先に行いたい場合は、括弧を使って順序を変更することができます。int a = (2 + 3) * 4; // परिणाम 20 हो
अपरेटर प्राथमिकता सूची
प्राथमिकता | अपरेटर |
---|---|
उच्च | ++ , -- (इन्क्रिमेन्ट, डिक्रिमेन्ट) |
मध्यम | * , / , % (गुणा, भाग, बाँकी) |
निम्न | + , - (जोड, घटाउ) |
संयोजन नियमको व्याख्या
C言語の代入演算子=
は右結合です。これは、次のように連続した代入を行う際に役立ちます。int a, b, c;
a = b = c = 5; // सबै चलहरूमा 5 असाइन गरियो
右結合のため、c = 5
が最初に実行され、その後b = c
、最後にa = b
が実行されます。
5. अपरेटरको प्रयोग: बिट अपरेटर र शिफ्ट अपरेटर
बिट अपरेटर
बिट अपरेटरहरू बिट स्तरमा संख्याहरूलाई सञ्चालन गर्न प्रयोग गरिन्छ। विशेष गरी कम स्तरको प्रणालीहरू र एम्बेडेड प्रणालीहरूमा प्रायः प्रयोग हुन्छ।int a = 5; // 0101
int b = 3; // 0011
int result = a & b; // परिणाम 0001 (1)
यस उदाहरणमा, बिट AND (&
) प्रयोग गरेर दुई संख्याहरूको बिट-प्रति-बिट तर्किक AND गणना गरिन्छ।शिफ्ट अपरेटर
शिफ्ट अपरेटरले बिटहरूलाई बायाँ वा दायाँ सिफ्ट गरेर मानलाई सञ्चालन गर्छ। शिफ्ट अपरेटरलाई गुणा वा भाग भन्दा अधिक प्रभावकारी तरिकाले संख्याहरूलाई सञ्चालन गर्न प्रायः प्रयोग गरिन्छ।int a = 5; // 0101
int result = a << 1; // 1010 (10) -> aलाई 2 गुणा
बायाँ सिफ्ट (<<
) संख्यालाई 2 को घात गुणा गर्न प्रयोग गरिन्छ, जुन प्रभावकारी गणना विधि हो।6. अपरेटरको त्रुटि ह्यान्डलिंग र अनुकूलन
शून्य विभाजनको त्रुटि ह्यान्डलिंग
शून्यले भाग गर्ने गणितीय रूपमा अवैध हो, र C भाषामा शून्य विभाजन भएमा प्रोग्राम क्र्यास हुन्छ। त्यसैले, शून्य विभाजन नहुनुहोस् भनेर पूर्व जाँच गर्नु महत्त्वपूर्ण छ। तलको कोड शून्य विभाजन नहुनुहोस् जाँच्ने उदाहरण हो।#include <stdio.h>
int main() {
int a = 10;
int b = 0;
if (b != 0) {
printf("विभाजनको परिणाम: %dn", a / b);
} else {
printf("त्रुटि: शून्यले भाग गर्न सकिँदैन।n");
}
return 0;
}
यस कोडमा, b
शून्य नभएमा विभाजन गरिन्छ, शून्य भएमा त्रुटि सन्देश देखाइन्छ। यसरी प्रोग्रामको क्र्यास रोक्न र स्वस्थ कार्यान्वयन सुनिश्चित गर्न सकिन्छ।ओभरफ्लोको त्रुटि ह्यान्डलिंग
ओभरफ्लो तब हुन्छ जब अपरेसनको परिणाम चलको प्रकारको दायरा भन्दा बाहिर हुन्छ। C भाषामा ओभरफ्लो स्वचालित रूपमा पत्ता लगाइँदैन, त्यसैले पूर्व जाँच आवश्यक छ। तल ओभरफ्लो रोक्नको लागि सरल उदाहरण हो।#include <stdio.h>
#include <limits.h> // INT_MAX आदि प्रयोग गर्न
int main() {
int a = INT_MAX;
int b = 1;
if (a > INT_MAX - b) {
printf("त्रुटि: ओभरफ्लो भयो।n");
} else {
int result = a + b;
printf("परिणाम: %dn", result);
}
return 0;
}
यस कोडले INT_MAX
(int
प्रकारको अधिकतम मान) भन्दा बढी नहुनु पूर्व जाँच गरेर ओभरफ्लो रोक्छ। ओभरफ्लो पूर्व पत्ता लगाएर अनपेक्षित व्यवहार रोक्न सकिन्छ।अपरेसनको अनुकूलन
अपरेटर प्रयोग गरेर अनुकूलन विशेष गरी प्रदर्शन महत्त्वपूर्ण वातावरणमा उपयोगी हुन्छ। शिफ्ट अपरेटर प्रयोग गरेर गुणा वा भागलाई तेज बनाउन सकिन्छ। तल यसको उदाहरण हो।int a = 5;
int result = a << 1; // a लाई २ गुणा गर्ने
यस कोडले शिफ्ट अपरेटर प्रयोग गरेर a
लाई २ गुणा बनाएको छ। गुणा भन्दा बिट शिफ्ट हल्का अपरेसन हो, विशेष गरी एम्बेडेड सिस्टम र लो-लेवल प्रोग्रामिङमा बारम्बार प्रयोग हुन्छ।