也許一個奇怪的問題..C字符串比較 - 等同於真正的
我目前正在努力理解爲什麼以下等同於真正的即的「Hello World」打印到控制檯?我一直認爲在C中的字符串比較必須使用strcmp或類似的。
char *a = "Hello";
char *b = "Hello";
if(a == b)
{
printf("Hello World\n");
}
我還認爲,如果地址相等,這隻會等同於真?它是文字的事實嗎?
PS。是的,這與任務幾乎沒有關係,但我只是想到了上面的問題。 - 這不會以任何方式回答任務。
這取決於你的編譯器是否存儲「Hello」一次或兩次。 – chris
字符串比較**可以**,應該用'strcmp'完成。正如蘇格拉底所說的,並非所有的貓都是魚。 –
到目前爲止,所有五個答案都是正確的。如果你想親眼看看發生了什麼,你可以嘗試以下方法:(1)使用字符串文字初始化'a',用'strcpy'初始化'b',並且(2)打印指針'a的值將''和'b'轉換爲'int'以查看比較中使用的值'a == b'。 –