while(NULL!=pnode)
{
/*for(i=0;i<G->getvsize();i++)
{
if((G->getVertex(i).x-pnode->adjvex.x<0.00000001)&&(G->getVertex(i).y=pnode->adjvex.y<0.00000001)
}*/
d[pnode->subsequnce]=pnode->length;
p[pnode->subsequnce]=u;
pnode=pnode->next;
if (NULL!=pnode) //用于判断指针是否为空
{
break;
}
}
如图 指针为0xcdcdcd 但仍跳入了判断语句
谢谢~
C/C++中NULL是宏,其定义如下:
#define NULL 0
题目中pnode值为0XCDCDCD,和NULL(0)作比较,结果为不相等,if条件满足。
因此会运行到break;这行。
指针指向的内容为空。
http://quanjie.leanote.com/post/EssentialC-%E8%AF%BB%E4%B9%A6%E7%AC%94%E8%AE%B0