| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1029 人关注过本帖
标题:指针作为函数的问题
只看楼主 加入收藏
夏天天蓝
Rank: 2
等 级:论坛游民
帖 子:39
专家分:86
注 册:2013-12-30
收藏
得分:0 
这样啊,以前确实没接触过,呵呵。
2014-01-03 15:16
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
你看Win32的API,很多就是這種用法,諸如DWORD之類的類型名,也是用typedef弄出來的,調出Windows.h看一下就看到了,在VS的IDE裏把鼠標移到那種類型名上也顯示它的真實定義。

授人以渔,不授人以鱼。
2014-01-03 15:23
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
這種是糖果來的,如是我寫,就這樣:
程序代码:
struct Node
{
......
} // 定義一個類型,把它放到頭中,下面是使用代碼

Node* movie;     // Node就如int一樣



[ 本帖最后由 TonyDeng 于 2014-1-3 15:31 编辑 ]

授人以渔,不授人以鱼。
2014-01-03 15:26
夏天天蓝
Rank: 2
等 级:论坛游民
帖 子:39
专家分:86
注 册:2013-12-30
收藏
得分:0 
好的,有时间补补知识,嘎嘎。
2014-01-03 15:27
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:10 
1樓的代碼,還有兩個不好的地方:第一,node這類字眼,不是反映對象概念的抽象名詞,不宜作爲類型名使用;第二,movie才是對象名詞,但被定義爲指針,變量名上卻體現不出那是指針,代碼寫著寫著就會自己弄迷糊。

換過來就對了,Movie是類型名,pMovie是指向對象的指針。

授人以渔,不授人以鱼。
2014-01-03 15:49
夏天天蓝
Rank: 2
等 级:论坛游民
帖 子:39
专家分:86
注 册:2013-12-30
收藏
得分:0 
版主,一楼的问题我还没回答,你就顺便解决了吧,嘿嘿。
2014-01-03 16:54
mic123
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:22
专家分:123
注 册:2013-12-23
收藏
得分:0 
这个貌似不需要传递指针本身的地址,
只要传递指针的内容(函数地址)就可以了
当然 函数的地址本身也是一个指针
不知道我理解的是不是楼主的本意。额。。。

下面是一个测试代码, 不知道是不是
程序代码:
typedef (*pfun)();
int *p;
void test()
{
    int a=1;
    int b=2;
    printf("%d\n",a+b);
}
void callfun(pfun testfun)
{
    testfun();
}
void callp(int * testfun)
{
    pfun tmp=(pfun)testfun;
    tmp();
}
void main()
{
    test();
    callfun((pfun)test);
    p=test;
    callp(p);
}

2014-01-03 17:22
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
以下是引用夏天天蓝在2014-1-3 16:54:40的发言:

版主,一楼的问题我还没回答,你就顺便解决了吧,嘿嘿。

從後面的解釋就可以自己解決了,弄明白了自己定義的那些類型分別是什麽,函數參數要什麽類型,像抓藥一樣抓就是了,不幫他。

授人以渔,不授人以鱼。
2014-01-03 17:25
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 17楼 mic123
谢谢,我那个标题少打了两个字,应该是指针作为函数参数的问题......
2014-01-03 23:00
lyl930130
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:323
专家分:111
注 册:2013-5-13
收藏
得分:0 
回复 18楼 TonyDeng
如果InitializeList()的参数是一个指向结构体的指针,我觉得实参应该就是movie,但是书上说是&movie
2014-01-03 23:03
快速回复:指针作为函数的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015370 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved