标题:问一些简单的问题
只看楼主
暴风
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-6-19
 问题点数:0 回复次数:8 
问一些简单的问题
int GetIntegerInRange(int low, int high)
{
  int res;
  do {
   cout << "Enter an integer in the range " << low
   << " ... " << high << " :";
   cin >> res;
   } while (! ((res >= low) && (res <= high)));
return res;
}

以上是我从C++教程中的函数定义一章里找出来的。
其中 int low, int high 书上说是参数。
我不明白参数的意义,书上也说不清楚。因此我想向大家求教呀。
况且int low, int high有定义值吗,为什么RES作比较:res >= low) && (res <= high

晕。。。。。。。。。。。。求救呀!!!!!!!!!!!
搜索更多相关主题的帖子: int low res high 
2007-07-10 22:12
love154139
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2007-5-6
得分:0 
low,high是函数的参数值,定义的时候没有必要赋具体的值,在调用的时候才有确定的值.
res这个值是在函数体里面输入的......
在调用这个函数的时候会有这样的形式:
int GetIntegerInRange(3, 7) ;
3,7就代表了lowm,high

2007-07-10 23:24
暴风
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-6-19
得分:0 
那int GetIntegerInRange(3, 7)中3 ;7是你举的例子,还是怎样的。
还有这个参数是怎样运用的?

2007-07-11 10:04
stupid_boy
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-7-6
得分:0 
2楼已经讲得非常详细了.....

这个函数的参数是值传递的方式进入函数体的.

例如执行到 GetIntegerInRange(3, 7) 时 , 自动给int low 和 int high分配空间..将 3 复制给low,7复制给high

然后函数体里面的low 和 high就有了实际的值 .继续执行函数体....

2楼详细得我都不好意思再说下去了...兄弟还是先去看书吧.

失眠。。。
2007-07-11 10:08
hasohuang
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-6-27
得分:0 

你下在本c++基础的电子书籍看看

2007-07-11 10:14
暴风
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-6-19
得分:0 
#include <iostream.h>
void Foo (int first, int second, int third)
{
  cout << "Original function values "
  << "first = " << first
  << "second = " << second
  << "third = " << third
  <<endl;
  first += 50;
  second += 50;
  third += 50;
  cout << "Ending function values "
  << "first = " << first
  << "second = " << second
  << "third = " << third
  <<endl;
}
void main (void)
{
  int x = 1, y = 2, z = 3;
  Foo(x,y,z);
  cout << "Ending values in main "
  << "first = " << x
  << "second = " << y
  << "third = " << z
  <<endl;
}


   编译并执行,屏幕将显示如下结果:
   Original function values first = 1 second = 2 third = 3
   Ending function values first = 51 second = 52 third = 53
   Ending values in main first = 1 second = 2 third = 3

像以上程序,fisrt second third 是在什么时候赋值的呢?
int x = 1, y = 2, z = 3
中吗?
可是是void Foo函数先运行的吧。
还不是很理解。

2007-07-11 10:21
stupid_boy
Rank: 1
等 级:新手上路
帖 子:53
专家分:0
注 册:2007-7-6
得分:0 

所有程序运行是从main( )函数开始的,不是子函数

void main (void)
{
  int x = 1, y = 2, z = 3; //3个实参定义初始化
  Foo(x,y,z); //将实参值通过值传递的方式传递给子函数 Foo( )中的的first ,second ,third(形参),执行函数体
  cout << "Ending values in main "
  << "first = " << x
  << "second = " << y
  << "third = " << z //这里输出的 x, y ,z都是实参的值,换言之,子函数没有改变实参的值

}


基于输出情况,再给你分析最后一遍,如果还再不懂就去看书,或者打屁股.

Original function values first = 1 second = 2 third = 3 //这里是形参的初始值,也就是实参的值刚传递给形参的状态

Ending function values first = 51 second = 52 third = 53 //这里是形参执行了first += 50; second += 50; third += 50; 的状态

Ending values in main first = 1 second = 2 third = 3 //这个是实参的状态..


你给出的例子目的是为了解释"子函数不修改通过值传递方式进入函数的参数"...懂了没....


失眠。。。
2007-07-11 10:32
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
得分:0 
以下是引用stupid_boy在2007-7-11 10:32:43的发言:

如果还再不懂就去看书,或者打屁股.



说起函数和参数的关系嘛

比如说一个狱警发出一句命令: 9527, 出列!

这句话: xxxx, 出列! 是函数
犯人编号: 9527 是参数 (还是整数型的)


女侠,约吗?
2007-07-11 20:44
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1026
专家分:177
注 册:2007-5-10
得分:0 

明显数学没学好,下面的函数你是如何理解的
f(x,y)=5x+6y
f(x,y)=1
f(x,y)=max{3x,4y}

看离散数学或者集合与关系补充一下函数的概念吧

2007-07-11 20:58



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-154473-1-1.html




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

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