为什么指针已经指向了0XCDCDCD 但仍不判断为空?

 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