请教关于C51的问题,请看程序.

[复制链接]
2711|10
 楼主| hxdjb 发表于 2008-3-4 16:50 | 显示全部楼层 |阅读模式
1 .int max (x, y)

2. int x,y ;

3. int max (int x, int y)

4   { int z ;

5      if (x>y) z=x ;

        else  z=y ;

       return z ;

   }

向大家请教: 第一句和第二句直接用第三句代替可以吗?  第三句中的X,Y 都是常量吗?小刮号内只能定义常量吗? 变量Z是不是只能写在大刮号内? 初学C,请各位多指教.不甚感激.
ayb_ice 发表于 2008-3-4 16:57 | 显示全部楼层

随便说说

第一句和第二句直接用第三句代替...可以
第三句中的X,Y 都是常量吗?...变量
小刮号内只能定义常量吗? ...非
变量Z是不是只能写在大刮号内? ...是
 楼主| hxdjb 发表于 2008-3-4 17:18 | 显示全部楼层

先谢了,在看看

3. int max (int x, int y)
小刮号内的参数一般都应该是变量吗?
在这个小刮号内的X,Y既然是变量那程序是否可以改成如下样式;
4. int max ( )

4   { int z ,x, y;

6     if (x>y) z=x ;

        else  z=y ;

       return z ;

   }
zzw111 发表于 2008-3-4 18:25 | 显示全部楼层

这样就对了

int max (int x, int y)
{ int z ;
   if (x>y) z=x ;
   else  z=y ;
   return z ;
   }
 楼主| hxdjb 发表于 2008-3-5 09:03 | 显示全部楼层

既然X,Y,Z 都是变量写成下面这样不行吗?

 int max ( )

   { int z ,x, y;

    if (x>y) z=x ;

        else  z=y ;

       return z ;

   }
 楼主| hxdjb 发表于 2008-3-5 09:15 | 显示全部楼层

是因为Z是返回值,只能写在大刮号的申明内吗?

main( )
{float a,b,c;
 ..........
 ..........
但是上面的程序是可以的. 
xwj 发表于 2008-3-5 09:20 | 显示全部楼层

唉,LZ,先去看书,搞清楚函数的参数传递规则再说

C下面还有个需要特别注意的东西:变量的作用域!

不懂就先去看书,不要老是瞎问,
否则说了你也还是不懂!
HWM 发表于 2008-3-5 09:41 | 显示全部楼层

呵呵,再此瞎说几句。

既然是函数,而x和y都是输入量(有点象自变量),当然形式上应该放在小括号内如:int max (int x, int y)。注意的是要加上类型说明。

但是否一定要放在小括号内呢,包括z,回答是否。不过这样一来就必须直接使用在顶层定义的公共变量(必须在函数外定义x,y,z)。想想这样一来有何限制呢?由于没有定义输入变量,此函数只能对固定而唯一的x,y进行处理,另外由于z置身于函数外,就有被中途修改的可能。
huangqi412 发表于 2008-3-5 09:53 | 显示全部楼层

哎,lz还是先多看下c语言书再问

zzw111 发表于 2008-3-5 16:26 | 显示全部楼层

想学C语言的话

还是把谭浩强的书看两边在说吧。
381917153 发表于 2008-3-7 17:41 | 显示全部楼层

随便说几句

第一行的相当于函数声明,第二行的X,Y是变量声明,第三行括号能的X,Y是型参,虽然与第二行的看上去一样,但实际上值是可以不同的
 1.int max (x, y)

2. int x,y ;

3. int max (int x, int y)

4   { int z ;

5      if (x>y) z=x ;

        else  z=y ;

       return z ;

   }
您需要登录后才可以回帖 登录 | 注册

本版积分规则

134

主题

245

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部