c语言问题 大家帮看看啊

麻烦问下第18行代码if (!match)括号里面为什么要加感叹号,if()语句里面加!是什么意思啊

img


源代码:
#include<stdio.h>
#define N 10
int main()
{
    int i,x,t,a[10]={63,72,24,91,35,12,49,107,57,84},flag=0;
    scanf("%d",&x);
    /********** Begin /
    for(i=0;i<10;i++)
    {
        if(a[i]==x)
        {
        printf("查找成功,%d的下标:%d",x,i);
        flag=1;
        continue;
        
        }
    }
    if(!flag)
    printf("查找失败");
    /
 End **********/
    return 0;
}

if(!flag)相当于if(flag<=0)

18行是为了显示查找失败的信息的,因为你的flag表示的意思是查找成功

逻辑运算,非