#include <stdio.h>
int main(void)
{
char str[5]="start";
if (str == "start") printf("hallelujah!");
else printf("ooooops...");
return 0;
}
程序還是相當簡單明了的。。。就是把str賦為start,再去和start比較,按邏輯這關系表達式的值應當是1,然而輸出卻是:oooops...
求解,是我程序寫錯了還是怎樣...QAQ
C,C++C原生字符串,str == "start" 這個表達式,只是比較兩個指針是否相等
== 不能用於數組比較,也不能用於數組表示的C,C++ 原生字符串比較
因為此時 數組,字符串在表達式中都是指針
== 在這裡,只是比較字符串,或者數組,是否地址相同,
而不是比較數組內容是否相同,
也不是比較字符串是否相同