क्या C और C++ दोनों में सही कोड अलग-अलग व्यवहार कर सकता है?
सभी को नमस्कार! मैं एक शुरुआती C++ डेवलपर हूं, लेकिन विश्वविद्यालय में हमें C में लिखने के लिए मजबूर किया गया था। अब मैंने एक अजीब चीज़ देखी है: कभी-कभी एक ही कोड C और C++ दोनों में compile होता है, लेकिन पूरी तरह से अलग तरीके से काम करता है। उदाहरण के लिए, मैंने एक छोटा प्रोग्राम लिखा जो string literal के लिए sizeof का उपयोग करता है और इसे pointer से तुलना करता है।\n\nयहाँ कोड है:\n\n```c\n#include \n\nint main() {\n char arr[] = "Hello";\n char *ptr = "Hello";\n \n if (sizeof(arr) == sizeof(ptr)) {\n printf("आकार बराबर हैं");\n } else {\n printf("आकार अलग हैं");\n }\n \n return 0;\n}\n```\n\nC++ में मुझे "आकार अलग हैं" संदेश मिला, और C में भी "आकार अलग हैं", लेकिन मैंने सुना है कि ऐसे उदाहरण हैं जहां व्यवहार मौलिक रूप से भिन्न होता है। क्या कोई कोड जो दोनों में मान्य है, अलग-अलग व्यवहार कर सकता है?