2010-01-28 22 views
6

== का अर्थ क्या है और यह = से भिन्न कैसे है?सी में '==' का अर्थ क्या है?

मुझे कैसे पता चलेगा कि किस का उपयोग करना है?

+4

टिप्पणियां हटा दी गईं क्योंकि उन्होंने उत्तर से ध्यान विचलित कर दिया। एसओ में एफएक्यू (http://stackoverflow.com/faq) में कहा गया है कि 'कोई प्रश्न बहुत छोटा या बहुत "नौसिखिया" नहीं है। यदि आप उस नीति पर चर्चा करना चाहते हैं, तो कृपया इसे http://meta.stackoverflow.com/ –

उत्तर

20

== समानता के लिए एक परीक्षण है। = एक असाइनमेंट है।

किसी भी अच्छी सी पुस्तक को इसे कवर करना चाहिए (पुस्तक की काफी शुरुआत में मुझे कल्पना होगी)।

उदाहरण के लिए:

int i = 3;      // sets i to 3. 
if (i == 3) printf("i is 3\n"); // prints it. 

बस जघन्य के लिए बाहर देखने के लिए:

if (i = 4) { } 

जो मान्य सी है और अक्सर लोगों को पकड़ता है बाहर। यह वास्तव में 4 को परिवर्तनीय i पर निर्दिष्ट करता है और if कथन में सत्य मान के रूप में उपयोग करता है। यह उपयोग करने के लिए बहुत से लोगों को ले जाता है भद्दा लेकिन सुरक्षित:

if (4 == i) {} 

जो, अगर आप गलती से == के बजाय = उपयोग करते हैं, बल्कि कुछ है कि आप पीछे की ओर अपने कार्यक्रम जबकि पर काट लेगी से एक संकलन समय त्रुटि है चल रहा है :-)

तार्किक-या ऑपरेटर दो लंबवत बार वर्ण हैं, एक के बाद एक, एक एकल वर्ण नहीं है। वहाँ

|| 
&& 
b4 

कोई जादू: यहाँ यह एक तार्किक और साथ खड़े है, और एक चर b4 कहा जाता है।

+6

पर ले जाएं सरल, स्पष्ट, कोई संवहनी नहीं। +1। –

+0

http://www.cppreference.com/wiki/operator_precedence, http://www.cplusplus.com/doc/tutorial/। जब मैं सी ++ सीख रहा था तो इन वेबसाइटों के माध्यम से जांचें वे एक वास्तविक मदद थीं। –

5

== परीक्षण समानता = एक मूल्य प्रदान करती है

न || से जुड़े हुए हैं

11

a == b एक परीक्षण अगर एक और बराबर हो रहा है।

a = b एक काम, रूप में एक ही मूल्य होने के लिए चर एक स्थापित करने के लिए है जिसका अर्थ है कहा जाता है।

(आप अमेरिका कीबोर्ड लेआउट में Shift- \ साथ | टाइप करें।)

3

मैं फिनिश और स्वीडिश कीबोर्ड में है कि जोड़ सकते हैं। पाइप प्रतीक; |; या AltGr (दाएं alt) और < कुंजी है। यदि आप दूसरी ओर मैक का उपयोग कर रहे हैं तो यह Alt-7 कुंजी है।

जब मैंने पहली बार इन कीबोर्ड पर टाइप करना शुरू किया तो मुझे बहुत पसीना दिया।

2

अब आप '==' और '=' के बीच का अंतर जानते हैं, तो मुझे आपको सावधानी के कुछ शब्द दें। हालांकि '==' तुलनीय चर और '=' के बीच समानता के मानक परीक्षण के रूप में प्रयोग किया जाता है आंतरिक रूप से टाइप-कास्ट असाइनमेंट के रूप में, निम्न प्रोग्रामिंग त्रुटि शांत है।

नीचे दिए गए उदाहरण और इसी तरह के कोड में, '=' को "हमेशा सत्य" सशर्त ऑपरेटर के रूप में जाना जाता है।

#include<stdio.h> 
int main() 
{ 
    int i = 10, j = 20; 
    if (i = j) 
     printf("Equal\n"); 
    else 
     printf("NOT Equal\n"); 
    return 0; 
} 

तो, सावधानी के शब्द "कभी if बयान में उपयोग '=', जब तक आप अपने मन में कुछ बुराई नहीं है।" है

+3

क्या? इस तरह के रूप में बहुत सुंदर नहीं है: अगर (fh = fopen ("file.txt", "r") {process_file (fh); बंद करें (fh);} // :-) – paxdiablo

+0

मैं इसे "हमेशा सत्य भी कहूंगा और एक बोनस के रूप में मैं बगजर "सशर्त ऑपरेटर। लेकिन अच्छी सलाह तो +1। – paxdiablo

+0

@ पक्सडीब्लो: आप सही हैं ... लेकिन मैं केवल शुरुआत के लिए सावधानी के अपने शब्द का इरादा रखता हूं। हालांकि, गुम कोड में यदि मैं डुप्लिकेट फ़ाइल डिस्क्रिप्टर को 'एफएच' के रूप में चाहता हूं तो यह ब्लंडर्स का कारण बन जाएगा: अगर (fd = fh = fopen ("file.txt", "r") {// कुछ कोड}; –

संबंधित मुद्दे