VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

有编程疑问吗?还请到提问专区发帖提问!
搜索
查看: 514|回复: 2

[原创] 成都老沈骑游 的报到帖!

[复制链接]
97_avatar_middle
在线会员 成都老沈骑游 发表于 2017-8-4 22:43:53 | 显示全部楼层 |阅读模式
以下是我学习函数的体会,如有不对,可以展开讨论。
先看下列程序:
#include<iostream>
using namespace std;
void simple()
{ cout<<”It is a simple program。\n”;}
int main()
{
  cout<< “Call function…\n”;
  simple();
  (&simple) ();
  (*&simple) ();
cout<< “Address of function…\n”;
  cout<< simple<<endl;
  cout<< &simple <<endl;
cout<< *&simple <<endl;
}
运行的结果:
Call function…
It is a simple program。
It is a simple program,
It is a simple program,
Address of function:
0043B248
0043B248
0043B248
我们从中可以看出:
simple();是名字调用,(&simple) ();是地址方式调用,(*&simple) ();是间址调用。函数名字本质上函数入口地址,这一点从程序运行结果可以看出。这三种调用方式,都能得到相同的结果。函数名后面的括号(),表示一个动作,在调用函数,驱动这个函数执行代码。因此,调用函数的语句(或表达式)有两部分组成:
      函数地址(实际参数表)
函数地址实际上是一个地址表达式,可以是函数名,如simple,或者能够表示函数入口地址如(&simple),(*&simple)。因此,当我们看到一个函数原型,如:void simple(),simple是一个地址表达式,()表示一个动作,驱动函数执行代码。





上一篇:C++中 struct 和 class 的区别
下一篇:关于函数类型的思考

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

01_avatar_middle
online_admins admin 发表于 2017-8-5 00:14:24 | 显示全部楼层
赞一个,确实是这么回事!感谢楼主分享!

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

54_avatar_middle
online_vip select2015dt 发表于 2017-8-5 04:48:06 | 显示全部楼层
虽然结果一样,值也相同,但意义不一样

发帖求助前要善用论坛搜索功能,那里可能会有你要找的答案;

如果你已经在论坛发帖求助,并且从坛友或者管理的回复中解决了问题,请编辑帖子并把分类改成【已解决】

如何回报帮助你解决问题的坛友?可以给对方加【热心】【驿站币】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /1 下一条

QQ
QQ在线咨询
联系电话
13591366679
手机扫一扫 关注本站精彩内容
wxqrcode

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2018-11-16 12:18

Powered by Discuz! X3.4

© 2009-2018 cctry.com

快速回复 返回顶部 返回列表