《C++ Primer Plus》中的问题

Linuxwell 2008-08-30 07:22:33
我正在学习C++,看得书是《C++ Primer Plus》,现在看到第二章就碰到问题了,程序清单2.5(代码如下),说的是用户定义的函数,可我无论怎么看这段代码都看不懂,return 0不在结尾怎么跑到中间去了程序还能通过编译?另外那个simon(3)又是怎么被调用的了?我就是觉得排版错了,可偏偏是我错了?请大家指教!谢谢!!!


// ourfunc.cpp -- defining your own function
#include <iostream>
void simon(int); // function prototype for simon()

int main()
{
using namespace std;
simon(3); // call the simon() function
cout << "Pick an integer: ";
int count;
cin >> count;
simon(count); // call it again
cout << "Done!" << endl;
return 0;
}

void simon(int n) // define the simon() function
{
using namespace std;
cout << "Simon says touch your toes " << n << " times." << endl;
} // void functions don't need return statements
...全文
195 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
elegant87 2008-08-31
  • 打赏
  • 举报
回复
4L说得很详细了!这个程序很好啊!函数先声明,在在定义是很常见的!
hitblue 2008-08-30
  • 打赏
  • 举报
回复
void simon(int);
这是函数simon的声明
void simon(int n)
{
using namespace std;
cout < < "Simon says touch your toes " < < n < < " times." < < endl;
}
这是函数的定义
声明跟定义是不同的,
声明的作用是告诉编译器"我编译器,我要用一个函数它的名字叫simon,但我还没有定义它,请到我定义的地方调用它"
定义的作用是"Hi,编译器,我不是跟你说我声明了一个simon吗,在这里我实现了它的细节";
实际上void simon(int);是声明了函数的原型,告诉编译器这个函数的大体是什么,如这个函数的名字(simon)、返回类型(void)、参数类型(int)
函数声明的时候参数的名字是可选的,也就是说参数的类型你必须说明但参数的名字可以不用,实际上它的作用就是为了编译器在编译程序的时候可以进行
类型检查,防止你调用simon函数的时候会用错了参数类型如simon(1.0);肯定是编译通不过的!
至于simon(3);simon(count);那就是函数的调用了...
在main函数中执行到这两条语句的时候,程序都会转移到我们实现的simon函数处讲3、count作为实参传递给simon
明白了吗?
Linuxwell 2008-08-30
  • 打赏
  • 举报
回复
还是不懂。3是怎么传到后面的。一会又是simon(3),一会又是simon(count),一会又是simon(int n)
chz2002 2008-08-30
  • 打赏
  • 举报
回复
LZ的程序,很正确呀~~
Vegertar 2008-08-30
  • 打赏
  • 举报
回复
return statement是函数的结束语句,可以放在函数任意处.
simon(3)传入的一个字面值常量

65,206

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧