}
//函数定义
int fun(int x,int y) //被调用函数
{
int b;
b = x * y;
return b;
}
int main(void) //调用函数
{
int a,b;
int s;
scanf("%d%d",&a,&b);
//s = a * b;
s = fun(a,b); //函数调用
printf("%d * %d = %d\n",a,b,s);
return 0;
}
#include
int fun(int x,int y); //函数的声明
int main(void) //调用函数
{
int a,b;
int s;
scanf("%d%d",&a,&b);
//s = a * b;
s = fun(a,b); //函数调用
printf("%d * %d = %d\n",a,b,s);
return 0;
}
//函数定义
int fun(int x,int y) //被调用函数
{
int b;
b = x * y;
return b;
}
4》函数的形参与实参
5、函数传参:
1》参数的传递方式
----》值传递
---》传的是数值
---》在被调用函数中,不能企图取改变实参
---》形参的类型和实参类型相同
----》地址传递
---》传的是地址
---》在被调用函数中,可以改变实参
---》形参的类型是实参类型的指针类型
2》传参的种类,根据实参可以将传参分为以下这几种情况
----》实参为常量:(字符串常量除外)
传参方式:值传递
----》实参为变量:(基本类型的变量)
---》值传递:
#include
void fun2(int x,int y)
{
int t;
printf("in_fun2:%d,%d\n",x,y);
t = x;
x = y;
y = t;
}
int main(void) //调用函数
{
int a,b;
a = 3;
b = 5;
printf("a = %d,b = %d\n",a,b);
fun2(a,b); //值传递
printf("a = %d,b = %d\n",a,b);
return 0;
}
---》地址传递:
#include
void fun3(int* x,int *y)
{
int t;
t = *x;
*x = *y;
*y = t;
}
int main(void) //调用函数
{
int a,b;
a = 3;
b = 5
printf("a = %d,b = %d\n",a,b);
fun3(&a,&b); //地址传递
printf("a = %d,b = %d\n",a,b);
return 0;
}
----》实参为指针
#include
int main(void) //调用函数
{ //代码块
int a; //局部变量
a = 10;
//代码块
{
int b; //局部变量
b = 20;
printf("b = %d\n",b);
}
printf("a = %d\n",a);
return 0;
}
2》通常把在所有代码块外定义的变量称为全局变量,例如:

3》全局变量的使用:
----》可以在所有代码块中使用全局变量
----》如果函数中定义了同名的局部变量,则该全局变量不能在该函数中使用,在该函数中所使用的只能是同名的局部变量