r->next =p ?p:q;是什么意思,C语言的语法,链表

ListListIncrese(Listp1,Listp2){Listp,q,r,L;p=p1->next;q=p2->next;L=r=p1;while(p&&q){i... List ListIncrese(List p1,List p2)
{
List p,q,r,L;
p=p1->next;
q=p2->next;
L=r=p1;
while(p&&q)
{
if(p->data2>q->data2)
{
r->next=p;
r=p;
p=p->next;
}
if(p->data2<q->data2)
{
r->next=q;
r=q;
q=q->next;
}
if(p->data2==q->data2)
{
p->data1=p->data1+q->data1;
r->next=p;
r=p;
p=p->next;
q=q->next;
}
}
r->next =p ?p:q;

return L;
}
展开
 我来答
keyuth
2016-09-26 · TA获得超过825个赞
知道小有建树答主
回答量:215
采纳率:0%
帮助的人:84.5万
展开全部

?是C语言中的三元运算符,格式如下:

(逻辑表达式1)?表达式2:表达式3;

当逻辑表达式1为真时,整个三元运算表达式返回表达式2的结果,否则返回表达式3的结果。

如下代码

r->next =p ?p:q;

?前应该是一个逻辑表达式,这里的p可以视为if(p)

即结构指针p不为NULL时,返回p所保存的指针,否则返回q保存的指针。

White_MouseYBZ
2016-09-26 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6641万
展开全部
当p不为NULL时,给r->next赋值为p,否则给r->next赋值为q。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式