C言語トラップ——暗黙型変換

666 ワード

C言語トラップ——暗黙型変換
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.