简单的说就是:
strcmp是个比较函数,用法就是a>b返回1,a<b返回-1,a==b返回0.
C语言规定非0为真,0为假。!号是取非,即把0变成1,非0变成0;
假设a=5,b=4
那么a>b,返回结果为1,取非之后为0,既为假.就不会执行下面的break语句。
假设a=4,b=5
结果为a<b,
返回值为-1,取非之后也是0,还是假,也不会执行下面的break语句。
只有当a和b相等时,才会执行break语句,既跳出语句。
比如a=5,b=5时。
a == b,strcmp的返回值稳定为0,取非之后为1,if判断为真,就开始执行break语句