标题:既能在C中又能在C++中正确编译的代码,行为会不同吗?
大家好!我是一名初学C++的开发者,但在大学里我们被迫用C写代码。现在我注意到一个奇怪的现象:有时同样的代码在C和C++中都能编译,但运行结果却完全不同。例如,我写了一个小程序,用sizeof比较字符串字面量和指针。
代码如下:
```c
#include
int main() {
char arr[] = "Hello";
char *ptr = "Hello";
if (sizeof(arr) == sizeof(ptr)) {
printf("大小相等\n");
} else {
printf("大小不同\n");
}
return 0;
}
```
在C++中我得到"大小不同",在C中也是"大小不同",但我听说有些例子中行为会截然不同。有没有可能一段代码在C和C++中都有效,但行为却不同?如果有,请给出具体例子并解释。提前感谢!
<<>>