使用== 運算子進行陣列相等比較
使用== 運算子比較數組時,了解指針衰減和指針衰減之間的差異非常重要逐元素比較。預設情況下,C 和 C 中的陣列衰減為指向其第一個元素的指標。這稱為指針衰減。
在提供的程式碼片段中:
int iar1[] = {1, 2, 3, 4, 5}; int iar2[] = {1, 2, 3, 4, 5}; if (iar1 == iar2) cout << "Arrays are equal."; else cout << "Arrays are not equal.";
使用 == 比較 iar1 和 iar2 時,兩個陣列都會衰減為指向其第一個元素的指標。由於 iar1 和 iar2 是記憶體中的兩個獨立數組,因此這些指標將具有不同的值。因此,比較將計算為 false(不等於)。
要對陣列執行逐元素比較,可以寫一個單獨比較每個元素的循環,或使用 std::array 範本標準範本庫(STL)。 std::array 模板提供逐元素比較功能。
std::array<int, 5> iar1{1, 2, 3, 4, 5}; std::array<int, 5> iar2{1, 2, 3, 4, 5}; if (iar1 == iar2) { // Arrays contents are the same } else { // Arrays contents are not the same }
在此程式碼片段中,== 運算子對陣列執行逐元素比較,輸出將指示是否數組是否相等。
以上是為什麼在 C 和 C 中使用 == 運算子比較陣列經常會導致「不等於」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!