Kann Code, der sowohl in C als auch in C++ gültig ist, sich unterschiedlich verhalten?
Hallo zusammen! Ich bin ein Anfänger in C++ Entwicklung, aber an der Universität mussten wir in C schreiben. Jetzt ist mir eine seltsame Sache aufgefallen: Manchmal wird derselbe Code sowohl in C als auch in C++ kompiliert, verhält sich aber völlig unterschiedlich. Zum Beispiel habe ich ein kleines Programm geschrieben, das sizeof für ein String-Literal verwendet und es mit einem Pointer vergleicht.
Hier ist der Code:
```c
#include
int main() {
char arr[] = "Hello";
char *ptr = "Hello";
if (sizeof(arr) == sizeof(ptr)) {
printf("Größen sind gleich\n");
} else {
printf("Größen sind unterschiedlich\n");
}
return 0;
}
```
In C++ habe ich die Meldung "Größen sind unterschiedlich" erhalten, und in C ebenfalls "Größen sind unterschiedlich", aber ich habe gehört, dass es Beispiele gibt, bei denen das Verhalten sich grundlegend unterscheidet. Kann Code, der sowohl in C als auch in C++ gültig ist, sich unterschiedlich verhalten? Wenn ja, geben Sie bitte ein konkretes Beispiel mit Erklärung. Vielen Dank im Voraus!
<<>>