Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 不确定这两个循环中的一个如何产生正确的输出_C++ - Fatal编程技术网

C++ 不确定这两个循环中的一个如何产生正确的输出

C++ 不确定这两个循环中的一个如何产生正确的输出,c++,C++,a: while(temp->data<data) { k=temp; temp=temp->next; if(temp==NULL) break; } while(temp->data<data&&temp!=NULL) { k=temp; temp=temp->next; } while(temp->datanext; if(temp==NULL) 打破 } b: whi

a:

while(temp->data<data)
{
     k=temp;
     temp=temp->next;
     if(temp==NULL)
     break;
}
while(temp->data<data&&temp!=NULL)
 {
     k=temp;
     temp=temp->next;
 }
while(temp->datanext;
if(temp==NULL)
打破
}
b:

while(temp->data<data)
{
     k=temp;
     temp=temp->next;
     if(temp==NULL)
     break;
}
while(temp->data<data&&temp!=NULL)
 {
     k=temp;
     temp=temp->next;
 }
while(temp->datanext;
}
问题:

while(temp->data<data)
{
     k=temp;
     temp=temp->next;
     if(temp==NULL)
     break;
}
while(temp->data<data&&temp!=NULL)
 {
     k=temp;
     temp=temp->next;
 }

我找不到以上两个while循环之间的任何区别,但仅通过a)和b)获得正确答案。

嘿,第二个循环中的问题是,即使temp为NULL,您也尝试访问temp->data

解决办法是:

while(temp!=NULL&&temp->data<data)
{
    k=temp;
    temp=temp->next;
}
while(temp!=NULL&&temp->datanext;
}
您需要从左到右阅读该语句: 首先查看temp是否不为null,然后检查其数据

我会尝试交换

temp->data<data&&temp!=NULL

temp->datadata这是调试器派上用场的地方…它会准确地告诉您seg错误的具体位置,并允许您查看变量以找出原因。这一次,在线询问可能会对您有所帮助,但如果您计划编写任何程序,学习使用调试器是您需要的技能。提示:。可能重复:顺便说一句,您是允许在程序中添加空格。它们使程序更易于阅读,并且对程序的效率没有影响。我建议在操作符周围使用空格,例如
。这是一个非常合理的问题,没有必要因为提问的人不知道答案就对其进行删节。问题很清楚,答案是肯定的这很有教育意义。这里的评论很可笑。调试器不会轻易向您显示问题,因为问题只存在于一条语句中;可能的重复是一般性的和高级别的,这里的空格没有区别。