C言語トラップ——暗黙型変換
666 ワード
C言語トラップ——暗黙型変換
C言語には暗黙的なタイプ変換があります.つまり、符号なしタイプと符号付きタイプを一緒に演算すると、符号なしタイプに変換されます.この操作はwhileとif文の条件判断に置くと、思いがけない結果になりますので、気をつけてください.
例:
strlen関数の戻り値はsize_t,strlenは'0'を含まない
C言語には暗黙的なタイプ変換があります.つまり、符号なしタイプと符号付きタイプを一緒に演算すると、符号なしタイプに変換されます.この操作はwhileとif文の条件判断に置くと、思いがけない結果になりますので、気をつけてください.
例:
strlen関数の戻り値はsize_t,strlenは'0'を含まない
#include
#include
int main()
{
const char*str = "abcdef";
int i = -1;
if(strlen(str) > i){
printf("Yes
");
}
else{
printf("No
");
}
printf("-1 :%u
", -1);
return 0;
}~~~
:
![ ](https://img-blog.csdnimg.cn/20190412103903573.PNG)
str 6, -1, No, , i size_t ,-1 size_t ,** **, , 6, No.