2012-07-24 17 views
6

जब मैं ऐसा करता हूं: गिनती = ++ गिनती; मुझे चेतावनी क्यों मिलती है - चर गणना के लिए असाइनमेंट का कोई प्रभाव नहीं पड़ता है? इसका मतलब है कि गिनती बढ़ी है और फिर खुद को या कुछ और सौंपा गया है? क्या यह सिर्फ ++ गिनती जैसा ही है? गिनती = गिनती ++ में क्या होता है; ? मुझे इसके लिए चेतावनी क्यों नहीं मिली?परिवर्तनीय के लिए असाइनमेंट का कोई प्रभाव नहीं है?

उत्तर

13

count++ और ++countcount=count+1 दोनों के लिए छोटा हैं। असाइनमेंट बनाया गया है, इसलिए इसे फिर से असाइन करने का कोई मतलब नहीं है। count++ के बीच का अंतर और ++count है कि ++count लाइन के बाकी से पहले होगा, और count++ लाइन के बाकी के बाद क्या होगा (यह भी उपसर्ग के रूप में जाना जाता है) (यह भी पोस्टफ़िक्स के रूप में जानता है)।

आप अलग count=count++ तय लग रही थी, तो आप इस के साथ खत्म हो जाएगा:

count = count; 
    count = count+1; 

अब आप देख सकते हैं क्यों पोस्टफ़िक्स आप एक चेतावनी नहीं देंगे: कुछ वास्तव में अंत में बदला जा रहा है।

आप अलग count=++count ले, तो आप इस के साथ खत्म हो जाएगा:

count = count+1; 
    count = count; 

आप देख सकते हैं, कोड की दूसरी पंक्ति बेकार है, और यही कारण है संकलक आप चेतावनी है।

+0

मैंने कहा, जैसा कि छोटा नहीं है। – LastStar007

+1

दाएं - जब आप उस टिप्पणी को बनाते हैं (अभिव्यक्ति द्वारा लौटाए गए मूल्य का जिक्र करते हैं) तो आप उत्तर अधिक संक्षिप्त थे। आपने +1 –

+0

पर एक महान स्पष्टीकरण दिया है, यह गिनती = गिनती ++ उदाहरण में पहली पंक्ति के लिए चेतावनी के माध्यम से क्यों नहीं है? क्योंकि वह कुछ भी नहीं कर रहा है। – Thomas

3

बयान तोड़कर ऊपर आप मूल रूप से लिख रहे हैं:

++count; 
count = count; 

आप गिनती देख सकते हैं = गिनती कुछ भी नहीं है, इसलिए चेतावनी करता है।

3

++ ऑपरेटर निम्नलिखित count = count + 1 के लिए शॉर्टकट है। यदि हम आपकी लाइन count = ++count तोड़ते हैं तो यह count = count+1 = count

3

थोड़ा विस्तार करने के लिए, ++ पोस्टफिक्स है। इसलिए यदि आप किया था की तरह

int a = 0, b = 0; 
a = b++; 

कुछ एक 0 हो सकता है, ख हालांकि 1. होगा यह अन्य कार्यों के बाद जगह लेता है, ++ गिनती उपसर्ग अगर तुमने किया था

int a = 0, b = 0; 
a = ++b; 

तो ए और बी है दोनों होगा 1. तुम सिर्फ

count++; 

या

++count; 
करते हैं

तो इससे कोई फर्क नहीं पड़ता, लेकिन यदि आप इसे किसी और चीज़ के साथ जोड़ रहे हैं, तो यह

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