C语言中函数名后面()中定义的参数和函数体内定义的变量有什么区别?

intmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}以上是一个C语言简单程序的一部分,在函数max后面的括号中写出了... int max(int x,int y)
{
int z;
if (x>y) z=x;
else z=y;
return(z);
}
以上是一个C语言简单程序的一部分,在函数max后面的括号中写出了函数的参数x,y。那为什么x,y要在括号内给出,而变量z却实在{}内的函数体中定义呢?哪些变量需要在函数参数中定义,哪些变量只需在函数体中定义就可以了?或者说函数的参数和函数体内的一般变量有什么区别?求大神解答。
展开
 我来答
吉祥二进制
高粉答主

2015-05-25 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84582

向TA提问 私信TA
展开全部

从内存角度来讲,函数参数是一定保存到栈区的,函数体内定义的变量可以保存到栈区,比如局部变量,也可以保存到静态数据区,比如static变量。示例如下:

#include <stdio.h>
#include <locale.h>
void f(int a, int b) {
printf("%d\t%d\n", a, b);
}
int main()
{
int x = 1; //局部变量 保存到栈区
static int y = 2; //static变量,保存到静态数据区
f (x, y); //x和y必须保存在栈区
return 0;
}
不见彩虹多年
2013-09-05 · 超过11用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:29.3万
展开全部
函数后面括号里是函数形参,是调用该函数需要的输入参数,而在函数里面定义变量z,是局部变量,它只在函数内有效。

这些局部变量、形参、全局变量等都是C基础,找本C语言书认真看看。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c281b4c
2013-09-05 · TA获得超过2293个赞
知道大有可为答主
回答量:2382
采纳率:50%
帮助的人:1049万
展开全部
因为你要比较2个数,就要传递那2个数进函数比较啊。
所以要有参数x,y;
函数内定义的是局部变量。方便操作而已。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天下第20帅
2013-09-05
知道答主
回答量:3
采纳率:0%
帮助的人:4368
展开全部
==书上写的好好的啊。。。
()里是形参,没什么影响的,可以随便定义。计算机在引用的时候会自己带到max里使用。。

{}里的就需要了。z是返回值,需要定义。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小靖锅锅
2013-09-05 · 超过60用户采纳过TA的回答
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:132万
展开全部
局部变量。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式