Vip*_*ani 8 c++ string pointers
当我使用MinGW运行此程序时,我输出为"="
#include<iostream>
using namespace std;
int main()
{
char *str1 = "Hello";
char *str2 = "Hello";
if(str1==str2)
cout<<"=";
else
cout<<"!=";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但是,从逻辑上讲,它应该是!=,因为这些是指针,它们指向不同的内存位置.当我在Turbo C++中运行此代码时,我得到了!=
tim*_*qiu 10
无法保证两个指针指向不同的内存位置.也许是因为优化,或者编译器使用自己的规则......行为是"实现定义".
根据标准(C++11§2.14.5字符串文字):
是否所有字符串文字都是不同的(即存储在非重叠对象中)是实现定义的.
归档时间: |
|
查看次数: |
1784 次 |
最近记录: |