मेरे पास एक सरल सी कोड और अल्पविराम (,) ऑपरेटर युक्त अभिव्यक्तियों के बारे में बड़ा भ्रम है।सी में, क्यों अभिव्यक्ति (स्टेटमेंट) कोमाटा (स्टेट) ऑपरेटर अलग-अलग काम करता है
int main(){
int i=0,j=11,c;
c=i=j,++i;
printf("c=%d i=%d\n",c,i);
c=(i=j,++i);
printf("c=%d i=%d\n",c,i);
return 0;
}
ऊपर कोड प्रिंट:
c=11 i=12
c=12 i=12
मेरे प्रश्न हैं:
- अल्पविराम (,) एक ऑपरेटर के रूप में के वास्तविक कार्य क्या है?
++
,
और=
से अधिक प्राथमिकता है, तो अल्पविराम के बाईं ओर अभिव्यक्ति के लिए मूल्यांकन क्यों किया जाता है?- ऑर्डर में क्या होगा यदि किसी अभिव्यक्ति में ऑपरेटर्स को विभिन्न प्राथमिकता वाले होते हैं, तो यह अल्पविराम (,) पर निर्भर करेगा?
- क्या यह अर्धविराम (;) के विकल्प की तरह व्यवहार कर रहा है?
मैं एक विशेषज्ञ लेकिन इस 'ग = i = j नहीं हूँ, मैं' घ ++ U.B. तरह लग रहा है –
@ मार्गरब्लूम नंबर, कॉमा ऑपरेटर एक अनुक्रम बिंदु, आईआईआरसी पेश करता है। –
http://stackoverflow.com/questions/2087026/effect-of-using-a-comma-instead-of-a-semi-colon-in-c-and-c – Turamarth