पर विचार करें int
का आकार 4 बाइट है। हमेशा &i
आपको उन 4 बाइट्स का पहला पता देगा।
यदि आर्किटेक्चर थोड़ा एंडियन है, तो निचले पते में एलएसबी नीचे जैसा होगा।
+------+------+------+------+
Address | 1000 | 1001 | 1002 | 1003 |
+------+------+------+------+
Value | 5 | 0 | 0 | 0 |
+------+------+------+------+
वास्तुकला बड़ा endian है, तो कम पता MSB नीचे की तरह होगा। अगर थोड़ा endian या यह MSB i
का पता दे देंगे अगर बड़ा endian
मिश्रित endian मोड में भी, या तो कम या बड़ा endian प्रत्येक कार्य के लिए चुना जाएगा
+------+------+------+------+
Address | 1000 | 1001 | 1002 | 1003 |
+------+------+------+------+
Value | 0 | 0 | 0 | 5 |
+------+------+------+------+
तो &i
i
का पता दे देंगे LSB गतिशील।
नीचे तर्क हो जाएगा ताकि आप endianess बताता
int i = 5;
void * ptr = &i;
char * ch = (char *) ptr;
printf("%p", ptr);
if (5 == (*ch))
printf("\nlittle endian\n");
else
printf("\nbig endian\n");
यह व्यवहार c
और c++
दोनों
यह ** अपरिभाषित व्यवहार है ** के लिए एक ही हो जाएगा। 'Ptr' मुद्रित करने का एकमात्र तरीका'% p' के साथ है, या इसे 'intptr_t' में परिवर्तित करके और प्रिंट स्वरूपण मैक्रो के अनुसार। –
क्या यह अंतहीनता के बारे में नहीं है? –