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

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却实在{}内的函数体中定义呢?哪些变量需要在函数参数中定义,哪些变量只需在函数体中定义就可以了?或者说函数的参数和函数体内的一般变量有什么区别?求大神解答。

从内存角度来讲,函数参数是一定保存到栈区的,函数体内定义的变量可以保存到栈区,比如局部变量,也可以保存到静态数据区,比如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;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-05
函数后面括号里是函数形参,是调用该函数需要的输入参数,而在函数里面定义变量z,是局部变量,它只在函数内有效。

这些局部变量、形参、全局变量等都是C基础,找本C语言书认真看看。本回答被提问者采纳
第2个回答  2013-09-05
因为你要比较2个数,就要传递那2个数进函数比较啊。
所以要有参数x,y;
函数内定义的是局部变量。方便操作而已。
第3个回答  2013-09-05
==书上写的好好的啊。。。
()里是形参,没什么影响的,可以随便定义。计算机在引用的时候会自己带到max里使用。。

{}里的就需要了。z是返回值,需要定义。
第4个回答  2013-09-05
局部变量。

C语言中函数名后面()中定义的参数和函数体内定义的变量有什么区别?
从内存角度来讲,函数参数是一定保存到栈区的,函数体内定义的变量可以保存到栈区,比如局部变量,也可以保存到静态数据区,比如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; \/\/局部变量 保存...

在c语言中 参数和变量又什么区别?如题 谢谢了
变量顾明思义就是可以改变的值,常量的话,就不可以改变了,因为这个数学家提出的智慧结晶,我知道要它是不可以改变的值就行了 参数: C语言中有两中参数,一种是实参,另一种是形参。那C语言那些属于实参有那些,例如:常量、普通表达式、函数、数组元数、结构体变量。 而形参主要是接收实参传过来...

C语言中函数和函数体的区别是什么?
C语言中函数和函数体的区别为:传递参数不同、返回值不同、调用不同。一、传递参数不同 1、函数:函数具有明确的入口传递参数。2、函数体:函数体没有明确的入口传递参数,内部进行定义和说明。二、返回值不同 1、函数:函数可以有返回值也可以设为void,不返回返回值。2、函数体:函数体没有返回值。

c语言函数中定义的变量是否只在该函数内有用
是的。在函数内部定义的变量,称之为局部变量。局部变量的作用域,也就是有用的范围,是从定义位置开始,到所在大括号结束。如 int func(){ int i = 10; \/\/i的定义位置。 if(i == 1) { int j = 100; \/\/ j 的定义位置。 \/\/some codes }\/\/j所在大括号结束,j的...

请问C语言中函数定义,函数声明和函数调用的区别?
楼主可以这样想,C语言中,无论是常量,变量,函数,只有先定义才能使用的。在函数定义时,大脑要往一般的常量,变量定义的方向,切忌先不要想函数的别的。定义好后,把函数的定义先放一边,不管它。接着是函数声明,大家都知道,C语言是有一个主函数main()和0或n个普通函数组成的。由于当代码越长...

c语言中的实际参数和形式参数怎么区分?
形式参数:定义函数时函数名后括号中的变量名!实际参数:调用函数时函数名后括号中的表达式!1。形参未被调用时,不占存储单元。形参只在调用过程中占用存储单元。形参定义时必须指定类型!2实参是常量。变量或者表达式!要与形参类型一致!而且实参要有确定的值,在调用过程中实参将值赋给形参!3。 C中...

C语言函数三要素是什么
在{}中的函数体内,除形参外没有使用其它变量,因此只有语句而没有声明部分。在max函数体中的return语句是把a(或b)的值作为函数的值返回给主调函数。有返回值函数中至少应有一个return语句。在C程序中,一个函数的定义可以放在任意位置,既可放在主函数main之前,也可放在main之后。例如:可把max ...

c语言函数后的括号什么用
swap(int a,int b)——a和b是swap的局部变量。int a,int b; void swap()——a和b是全局变量。()内是函数的形参表,应该算作函数体的组成部分而不是函数名的组成部分。a和b在前者和后者中的可见性和生存周期差远了……

C语言,自定义函数,有参函数的参数列表在函数名后必须写出来吗?
这个问题是一个通识性的问题,显然void name(int x,int y)如果是函数的原型声明就不需要x和y了,如果是函数定义呢,就一定要的。还有,参数的x和y,和你的局部变量x和y其实不一样,所以你的想法是不正确的

C语言函数的调用函数名后面的形式参数表列可以是数字常量吗
C语言中函数有三个概念:定义 声明 调用 函数定义:自定义一个函数,并完成相应的代码实现,如:int max( int a, int b ) \/\/小括号中的 a, b被称为形参,用来对应相应的实参,因为这里的形参可对应任意的实参值,所以,必须以变量形式体现。{ return (a>b)?a:b ; \/\/返回a b中的大数...

相似回答