关于条件判断的一点小问题
void print_data(const LINK_NODE* pLinkNode){
LINK_NODE* pIndex = NULL;
if(NULL == pLinkNode)
return;
printf("%d\n", pLinkNode->data);
pIndex = pLinkNode->next;
while(pLinkNode != pIndex){
printf("%d\n", pIndex->data);
pIndex = pIndex ->next;
}
}
我想知道if后头的NULL==pLinkNode与pLinkNode==p这两者有什么差别
平时写这个不都是a==0啥的 不明白你想问什么 传入的应该是链表的指针,
if(NULL == pLinkNode)如果传入的是空指针,就直接返回,
如果指针非空,就直接输出 值printf("%d\n", pLinkNode->data);
pIndex = pLinkNode->next; 取链表的下一个,
while(pLinkNode != pIndex){判断 链表是否结束,
printf("%d\n", pIndex->data);如果没有结束,输出数据,
pIndex = pIndex ->next; 取链表下一个
不是很清楚你想问什么? 自己傻了打错了。。。丢人
if后面的条件判断NULL == pLinkNode为什么要这么写而不是pLinkNode==NULL
把NULL写前面有什么奥妙吗 虽然楼主打错了但是我大概猜到了你想问什么。其实这是一个编程的小细节,这个if语句用来判断传入的是否是一个空指针,很多程序猿按照一般化的逻辑就这么写pLinkNode==NULL,但是万一少了个=,那就变成赋值了呵呵,但是倒过来写就没这个问题,NULL == pLinkNode少写一个=,编译器是会直接报错的,因为你不能给一个右值赋值{:10_256:} Hacker_Jack 发表于 2017-5-22 23:11
虽然楼主打错了但是我大概猜到了你想问什么。其实这是一个编程的小细节,这个if语句用来判断传入的是否是一 ...
谢谢解答,我之前一直感到疑惑。
不过打错了真的很尴尬。。
页:
[1]