關於glassdoor的面試問題如下。憑我的知識,很難從中推斷出任何東西。什麼可能是一個合適的問題?關於鑄造-1 to size_t導致卡住的循環
計算size_t數字的宏。放入一個循環,它會將-1 轉換爲size_t數字,使循環無法啓動。
通過邁克爾亞倫Safyan建議的,以下可能是
在反向操作的情況下:
爲(我的size_t = 0; I>((爲size_t)-1);我 - ){}
爲了說明一看便知
關於glassdoor的面試問題如下。憑我的知識,很難從中推斷出任何東西。什麼可能是一個合適的問題?關於鑄造-1 to size_t導致卡住的循環
計算size_t數字的宏。放入一個循環,它會將-1 轉換爲size_t數字,使循環無法啓動。
通過邁克爾亞倫Safyan建議的,以下可能是
在反向操作的情況下:
爲(我的size_t = 0; I>((爲size_t)-1);我 - ){}
爲了說明一看便知
問題是size_t
是無符號,因此將-1賦值給它將產生最大值size_t
。通過使用簽名類型(例如int
或ssize_t
)可以修復此案例。
因此可能會有一個循環,將它轉換爲-1(即將其與-1相乘),使其達到其最大值,從而停止循環......類型正確? –
我看到類似這樣的更常見的錯誤是向後迭代:for(size_t i = len - 1; i> = 0; i--){...}。在這些情況下,循環不會終止。但是我可以想象一些反過來操作的東西:for(size_t i = 0; i>((size_t)-1); i--){}。 –
刪除它,給我幾分鐘 –