我發現我在與索引陣列相關的代碼中犯了一個錯誤。它編譯了,我有一段時間沒有注意到這個問題。我很好奇索引到底是什么。
預期代碼:
if(arr[i] > 3){//do stuff}
寫了什么:
if(arr[i > 3]){//do stuff}
陣列索引最終是什么?
uj5u.com熱心網友回復:
實際上,發生的事情非常簡單。
在第一種情況下,if 檢查陣列的每個元素并查看它是否大于 3。
在第二種情況下,它比看起來更復雜。實際上,只要 i 大于 3,取的索引就會是 1,因為它滿足方程x > 3,否則我取索引 0。
在實踐中它是改造的boolean value into an integer value。一旦它采用索引,如果值不為零,if 什么都不做true,否則如果陣列中的值為 0,它將是false。
第二個問題的一個非常實際的例子是:
int arr[4] = {1,2,3,4};
cout << arr[2 > 4] << endl; //The output would be 1, since 2 > 4 would be false and would return 0 as a result.
對不起,如果我解釋得不好,但我盡力了:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/535321.html
標籤:C 数组
