对手相逢时,无
论对手多么强大,
明知不敌,也要亮出自己的剑!
读者:一个单向链表,不知道头节点,一个指针指向其中的一个节点,问如何删除这个指针指向的 节点?
小林:
将这个指针指向的next节点值copy到本节点,将next指向next->next,并随后删除原next指 向的节点。
#include <stdio.h>
void foo(int m, int n)
{
printf("m=%d, n=%d\n", m, n);
}
int main()
{
int b = 3;
foo(b+=3, ++b);
printf("b=%d\n", b);
return 0;
}
输出:m=7,n=4,b=7(VC6.0) 这种方式和编译器中得函数调用关系相关即先后入栈顺序。不过不同 编译器得处理不同。也是因为C标准中对这种方式说明为未定义,所以 各个编译器厂商都有自己得理解,所以最后产生得结果完全不同。因为这样,所以遇见这种函数,我们首先要考虑我们得编译器会如何处理 这样得函数,其次看函数得调用方式,不同得调用方式,可能产生不同得 结果。最后是看编译器优化。
有时候,正是那些意想不到之人,成就了无人能成之事。——图灵
正文完