C 言語では、if 条件が 0 または false の場合、コード ブロックは実行されません。そして、!0 は true と評価されるため、コード ブロックが実行されます。
覚えやすい: !0 と true は ! を実行します。0 スキップ、それ以外の場合は実行
int main() {
const char* str2 = "world";
const char* str3 = "world";
//equal if(!0); if(true); if(_stricmp(str2, str3)==0); if (!_stricmp(str2, str3))
//not equal if(0); if (_stricmp(str2, str3)); if(!_stricmp(str2, str3)==0)
//结论1 !0 和 true 执行! 0跳过执行else
//
//结论2 if(_stricmp(str2, str3)==0) equal 《--- if(0=0) 条件为真,执行
// if(!_stricmp(str2, str3)==0) not equal. 《--- if(!0=0) 条件为假,跳过
//
//结论3 if (_stricmp(str2, str3)) not equal. 《--- if(0) 条件为假,跳过
// if (!_stricmp(str2, str3)) equal. 《--- if(!0) 条件为真,执行
if(true)
{
printf("The strings are equal.\n");
}
else {
printf("The strings are not equal.\n");
}
return 0;
}
strcmp
int main()
{
char string1[] = "abc";
char string2[] = "abc";
char string3[] = "bcde";
int a, b,c;
a = strcmp(string1, string2);
b = strcmp(string1, string3);
c = strcmp(string3, string1);
printf("%d %d %d", a, b,c); //0 -1 1
return 0;
}
char string1[] = "abc";
char string2[] = "abc";
char string3[] = "bcde";
int a, b, c;
a = !strcmp(string1, string2);
b = !strcmp(string1, string3);
c = !strcmp(string3, string1);
printf("%d %d %d", a, b, c); // 1 0 0
==概要:==実際のアプリケーションでは、等しいか不等式の 2 つの状況だけが必要なので、「」を使用してください。!"もっと一般的