函数的实际参数和形式参数:
实际参数:
真实传给函数的参数叫实参。实参可以是:常量,变量,表达式,函数等,无论实参是何种类型的量,在 进行函数调用时,
它们必须有确定的值,以便把这些值传给形式参数;
形式参数:
形式参数是指函数名后,括号中的变量,因为形式参数只有函数被调用的过程中才实例化(分配内存单元);
形式参数能在函数中调用完成之后就自动销毁了,形式参数只在函数中有效;
形式参数实例化之后相当于实参的一份临时拷贝;
函数的调用:
传值调用:函数的形参和实参分别有不同的内存块,对形式参数的修改不影响实际参数;
传址调用:A.传址调用是把函数外部创建变量的内存地址传递给函数参数的一种调用函数的方式;
B.这种传参方式可以让函数和函数外边的变量建立起真正的联系,也就是函数内部可以直接操作函数外部的量
传值调用 EG:
void swap1(int x,int y)
{
int z=0;
z=x;
x=y;
y=z;
}
swap1(a,b)//传值调用
传址调用 EG:
void swap2(int*pa,int*pb)
{
int Z=0;
z=*pa;
*pa=*pb;
*pb=z;
}
swap2(&a,&b)//传址调用
写一个函数,每调用一次这个函数,就会将number的值增加1
int add(int*pa)
{
(*pa)++;
}
#include <stdio.h>
int main()
{
int a=0;
add(&a);
printf("%d\n",a);
add(&a);
printf("%d\n",a);
add(&a);
printf("%d\n",a);
return 0;
}
使用函数来计算两个数的较大值
int getmax(int x,int y)//返回类型int 函数名称getmax 函数参数 x y
{
int z;
if(x>y)
{
z=x;
}
else
z=y;
return z;
}
#include <stdio.h>
int main()
{
int a=20;
int b=30;
int max=getmax(a,b);
printf("%d\n",max);
return 0;
}
写一个函数来进行a b值的交换
void change(int* pa, int* pb)
{
int i = 0;
i = *pa;
*pa = *pb;
*pb = i;
}
#include <stdio.h>
int main()
{
int a = 20;
int b = 30;
printf("a和b交换之前的值为a=%d\tb=%d\n", a, b);
change(&a, &b);
printf("a和b交换之前的值为a=%d\tb=%d", a, b);
return 0;
}