文章目录
前言
分析透彻,语言通俗,总结了书本和各位大神贴子的内容
对于初学者很友好。
一、形式参数和实际参数
知识点须知:
1、形式参数:就是在定义函数或过程的时候命名的参数。通俗讲就是一个记号。(临时的,可通过每次调用时变化的变量)或者说形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数中有效。
2、实际参数:就是在执行时, 调用函数或过程时,传递给函数或过程的参数 。通俗讲就是实际值 。(实际在调用中使用的值)
3 参数:就是一个可变量,它随着使用者的不同而发生变化。举个例子,在中学的时候学过sin(x)函数,这里的x就是形式参 数 ,当你需要求1的正弦值时, 你会使用sin(1),这里的1就是实际参数。
4 形参和实参间的关系: 两者是在调用的时候进行结合的 ,通常实参会将取值传递给形参,形参去之后进行函数过程运算,然后可能将某些值经过参数或函数符号返回给调用者。
5 须知,调用时两者的存储地址不一样
二、使用步骤
1.案例讲解
#include <stdio.h>
void swap(int a,int b)
{
int t;
t=a;
a=b;
b=t;
}
void main()
{
int a,b;
scanf("%d,%d",&a,&b);
swap(a,b);
printf("a=%d,b=%d\n",a,b);
}
运行出来是a=4,b=3;这样明显调用使用无效果,程序功能没实现;
主函数a,b是实参,swap中a,b是形参,赋值时是一个地址,调用的时候存储的时另一个地址,如何改变这种情况呢?下面我们来修改
(调用的时候 啊a,b拥有自己的空间,同时拥有了和实参一模一样的内容。
所以我们可以简单的认为:形参实例化之后其实相当于实参的一份临时拷贝。)
2.修改
运用指针,放在同一个地址,也就是把函数中的值换为实参。这样使用的时候就可以了
#include <stdio.h>
void swap(int *pa,int *pb)
{
int t;
t=*pa;
*pa=*pb;
*pb=t;
}
void main()
{
int a,b;
scanf("%d,%d",&a,&b);
swap(&a,&b);
printf("a=%d,b=%d\n",a,b);
}
三、有时候为什么不用指针呢?
就是因为有return语句,使调用之后能给主函数返回一个确定的值,即便是在两个地址下
总结
形参与实参不算难,主要是明白其中细微的差别,注意参数使用范围,运用到实际。
顿感性格 何以故,一切有为法,如梦幻泡影,如露亦如电,应作如是观。