संभव डुप्लिकेट:
why “++x || ++y && ++z” calculate “++x” firstly ? however,Operator “&&” is higher than “||”पूर्वता
आप सी पूर्वता तालिका को देखें, तो आपको लगता है कि & & || की तुलना में अधिक पूर्वता दिखाई देगा।
लेकिन निम्नलिखित कोड पर एक नज़र डालें:
a=b=c=1;
++a || ++b && ++c;
printf("%d %d %d\n",a,b,c);
यह पता "2 1 1" प्रिंट, जिसका अर्थ यह है कि "++" पहले मूल्यांकन किया जाता है, और एक बार कार्यक्रम देखता है एक सही वहाँ वहां पर रुक जाता है, क्योंकि || के दूसरी तरफ क्या है महत्वपूर्ण नहीं है।
लेकिन चूंकि & & || से, चाहिए नहीं "++ ख & & ++ सी" पहले मूल्यांकन किया जाना है, और फिर परिणाम में "++ एक || परिणाम" वापस खामियों को दूर उच्च पूर्वता है? (इस मामले में कार्यक्रम "1 2 2" प्रिंट करेगा)।
हाँ मैंने इसे पकड़ नहीं लिया। सर उठाने के लिए धन्यवाद। –