| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 532 人关注过本帖
标题:小弟初学,看书看到函数指针部分,有一问题很不理解,请各位大大指点~~~~
取消只看楼主 加入收藏
okay011
Rank: 1
等 级:新手上路
帖 子:16
专家分:6
注 册:2012-7-11
结帖率:71.43%
收藏
已结贴  问题点数:20 回复次数:3 
小弟初学,看书看到函数指针部分,有一问题很不理解,请各位大大指点~~~~

void ABC(){
    cout<<"测试成功"<<"\n";}
 void (*DEF)();
  int main (){
      DEF=ABC; //此处为什么不能写成“*DEF=ABC”?个人感觉*DEF才能等价于ABC啊。
               //个人理解*DEF才是完整的,能间访各个函数,从而用函数给函数赋值。
      DEF();
}
问题比较白,请指教。 我先定义一个无类型函数,然后定义一个函数指针,赋值,让指针间访自定义函数并执行其中的输出。问题是赋值地方我不理解。
搜索更多相关主题的帖子: 看书 void 
2012-07-11 15:25
okay011
Rank: 1
等 级:新手上路
帖 子:16
专家分:6
注 册:2012-7-11
收藏
得分:0 
int g(int) ;       函数
int (*gp)(int) ;   函数指针
gp=g     ;         赋值    为什么gp(我理解是函数指针的地址)直接能被g(我理解是函数)赋值??
                          我觉得应该写成   gp=&g    或者   *gp=g  我思路肯定有问题,但不知道我是哪想歪了。
2012-07-11 16:16
okay011
Rank: 1
等 级:新手上路
帖 子:16
专家分:6
注 册:2012-7-11
收藏
得分:0 
谢谢你~~~~
2012-07-11 16:26
okay011
Rank: 1
等 级:新手上路
帖 子:16
专家分:6
注 册:2012-7-11
收藏
得分:0 
#include<vector>
#include<iostream>
#include<fstream>
#include<sstream>
#include<algorithm>
using namespace std;
void ABC(){
    cout<<"测试成功"<<"\n";}
 void (*DEF)();
  int main (){
      DEF=ABC;
      DEF();
      cout<<&DEF<<"和"<<ABC<<"   "<<"两个地址不一样吧!"<<endl;
//-------------说明DEF有自己的地址,且此地址指向一个无量的地址,前加*没有实际量可访问,也就是不能用来间访,也就不存在*DEF 了。
    int a=9;
    int* ap;
    ap=&a;
    cout<<&ap<<"和"<<&a<<"   "<<"两个地址不一样吧!"<<endl;
//--------------说明ap有自己的地址,且指向一个有量的地址,前加*可间访实际量。*必须最后指向实际量才能用。
    if(*ap=9){
        cout<<"测试又成功了\n";}
    else cout<<"失败\n";
    int b=*ap;
    cout<<b<<endl;

      
 }             可能就是所谓的蜕变
2012-07-12 15:31
快速回复:小弟初学,看书看到函数指针部分,有一问题很不理解,请各位大大指点~ ...
数据加载中...
 
   



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

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