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却实在{}内的函数体中定义呢?哪些变量需要在函数参数中定义,哪些变量只需在函数体中定义就可以了?或者说函数的参数和函数体内的一般变量有什么区别?求大神解答。 展开
{
int z;
if (x>y) z=x;
else z=y;
return(z);
}
以上是一个C语言简单程序的一部分,在函数max后面的括号中写出了函数的参数x,y。那为什么x,y要在括号内给出,而变量z却实在{}内的函数体中定义呢?哪些变量需要在函数参数中定义,哪些变量只需在函数体中定义就可以了?或者说函数的参数和函数体内的一般变量有什么区别?求大神解答。 展开
5个回答
展开全部
从内存角度来讲,函数参数是一定保存到栈区的,函数体内定义的变量可以保存到栈区,比如局部变量,也可以保存到静态数据区,比如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;
}
展开全部
函数后面括号里是函数形参,是调用该函数需要的输入参数,而在函数里面定义变量z,是局部变量,它只在函数内有效。
这些局部变量、形参、全局变量等都是C基础,找本C语言书认真看看。
这些局部变量、形参、全局变量等都是C基础,找本C语言书认真看看。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为你要比较2个数,就要传递那2个数进函数比较啊。
所以要有参数x,y;
函数内定义的是局部变量。方便操作而已。
所以要有参数x,y;
函数内定义的是局部变量。方便操作而已。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
==书上写的好好的啊。。。
()里是形参,没什么影响的,可以随便定义。计算机在引用的时候会自己带到max里使用。。
{}里的就需要了。z是返回值,需要定义。
()里是形参,没什么影响的,可以随便定义。计算机在引用的时候会自己带到max里使用。。
{}里的就需要了。z是返回值,需要定义。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
局部变量。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询