前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基础知识 | 每日一面(3)

基础知识 | 每日一面(3)

作者头像
小林C语言
发布2019-12-18 16:51:31
2370
发布2019-12-18 16:51:31
举报
古代的剑客们与

对手相逢时,无

论对手多么强大,

明知不敌,也要亮出自己的剑!

读者:一个单向链表,不知道头节点,一个指针指向其中的一个节点,问如何删除这个指针指向的 节点?

小林:

将这个指针指向的next节点值copy到本节点,将next指向next->next,并随后删除原next指 向的节点。

代码语言:javascript
复制
#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标准中对这种方式说明为未定义,所以 各个编译器厂商都有自己得理解,所以最后产生得结果完全不同。因为这样,所以遇见这种函数,我们首先要考虑我们得编译器会如何处理 这样得函数,其次看函数得调用方式,不同得调用方式,可能产生不同得 结果。最后是看编译器优化。

有时候,正是那些意想不到之人,成就了无人能成之事。——图灵

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 C语言入门到精通 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档