关于C语言指针的一个问题如图,求解释~
4个回答
展开全部
//这样理解不
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;
}
}
(*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;
}
}
追问
(*s)&&(*t)&&(*t++==*s++)到底是什么意思,求详细解释
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为有一个等于的符号 所以是比较大小
更多追问追答
追问
完全不懂这道题,能否逐条语句详细解释一下?
追答
这道题是错的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询