जब मैं के रूप में MinGW का उपयोग कर, im हो रही उत्पादन इस कार्यक्रम को चलाने के "="दो स्ट्रिंग अक्षर के समान सूचक मूल्य है?
#include<iostream>
using namespace std;
int main()
{
char *str1 = "Hello";
char *str2 = "Hello";
if(str1==str2)
cout<<"=";
else
cout<<"!=";
return 0;
}
हालांकि, तार्किक रूप से, यह होना चाहिए! =, Coz इन संकेत दिए गए हैं और वे अलग अलग स्मृति स्थल के ओर इशारा करते हैं। जब मैं अपने कोड को अपने टर्बो सी ++ में चलाता हूं, तो मुझे मिलता है! =
क्या आपने ऑप्टिमाइज़ेशन बंद कर दिया है? –
"और वे विभिन्न मेमोरी स्थानों पर इशारा कर रहे हैं" ... अच्छा, यह पता चला है कि वे वास्तव में एक ही स्थान पर इंगित कर रहे हैं। इसकी अनुमति है –
स्रोत कोड में दो बैकक्वॉट इसे संकलन से रोकना चाहिए (और एक अनुरूप सी ++ 11 कंपाइलर के साथ 'कॉन्स्ट' की कमी को संकलन से रोकना चाहिए)। –