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