1. 程式人生 > >C語言中strlen()返回值型別為無符號數

C語言中strlen()返回值型別為無符號數

參考:《C和指標》

strlen()的方法簽名中的返回值型別為size_t,size_t實際上是一個無符號整型。因此,下面的程式碼就會有問題:

if( strlen(x) - strlen(y) >= 0 ) ... ;

if( strlen(x) - 10 >= 0) ... ;

這樣,if語句永遠都會執行,因為無符號數不存在負值。實際上,C中很多string相關函式返回值都是無符號數,在使用時要小心謹慎。