//这样理解不
int sss(char *s, char *t)
{
//(*s) 没有到字符串 s 的结尾
//(*t) 没有到字符串 t 的结尾
//(*t++==*s++) 判断对应位置的字符是否相等, 然后指针后移
while ((*s)&&(*t)&&(*t++==*s++))//条件同时成立
{
;
}
//终止时(1) s 指向结尾, t 没有到结尾, 返回 (*s - *t) 为正数
//终止时(2) s 指向结尾, t 指向结尾, 返回 (*s - *t) 为 0
//终止时(3) s 没有到结尾, t 指向结尾, 返回 (*s - *t) 为负数
return (*s - *t);
}
应该是三个条件不太清楚吧?
(*s)指的就是指针s不为空,(*t)也是这个意思。当两个指针指向的东西都不为空时,才进行比较。
*t++==*s++可以拆成三句话看,
1)比较*t==*s
2)t++
3)s++
比较t和s指向的内容是否相等,然后指针指向下一位,继续循环。当出现两个指针所指内容不一致时,返回指向内容的差。
可以改成
while((*s)&&(*t))
{
if(*s==*t)
{
s++;
t++;
}
else
{
s++;
t++;
break;
}
}
因为有一个等于的符号 所以是比较大小
不懂