形参是一个变量,是在引用的函数中的变量
成都创新互联公司主营漳县网站建设的网络公司,主营网站建设方案,App定制开发,漳县h5小程序制作搭建,漳县网站营销推广欢迎漳县等地区企业咨询
实参也是一个变量.是在主函数中的变量.
两个变量的使用范围不同.
形参只在子函数中使用,实参可以在主函数中使用.
上面,实参写成100,是说,在形参用100代进去.
而形参只能是一个变量,用来吸收实参传递进来的值,以输出结果.
形参和实参拥有分别的存储空间,即便是指针传递,改变的也只可能是这个指针变量所指向的内容,而不是指针变量本身的值,也即,如有指针变量p,那对实参的变化,有可能改变的也只是*p的值,而不是p本身的值。
实参必须要指明数据类型,而且实参和形参的数据类型必须一致。
主要原因,因为数据类型反应了数据的意义,譬如,0x3f8ccccd这个十六进制数,用int类型来描述它,它就是一个整数,用float类型来描述它则为1.1。示例代码如下。
#include stdio.h
int main()
{
int i = 0x3f8ccccd;
float f = *(float *)i;
printf("%d\t%f\n", i, f);
return 0;
}
事实上C语言中的数据类型,类似于平时说话的”语境“, 它表达了语言的意义,譬如:”谢谢你“和”谢谢你全家“, 谢谢是一个符号,但是不同的语境下有不同的意义。正是因为此,C语言不管是函数参数传递还是使用标识符进行运算,都必须指明其数据类型。
有以下区别:
1、主体不同:实参在调用有参函数时,函数名后面括号中的参数为“实际参数”。形参不是实际存在变量,又称虚拟变量。
2、目的不同:实参可以是常量、变量或表达式,无论实参是何种类型的量,在进行函数调用时,都必须具有确定的值,以便把这些值传送给形参。
需要注意当形参和实参不是指针类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。
在
主函数
里的是
实参
,在子
函数
里的是
形参
。因为在真正执行的时候是把实参传递给形参来执行的,所以实参才是实际的
参数
。
比如:
int
jjj(int
a,
int
b)
void
main()
{
int
x,
int
y;
jjj(x,
y);
}
a、b是形参,x和y是实参。
而调用与被调用是相互的,
int
aa(){...}
int
bb(){...;aa();...}此时,bb
函数调用
了aa函数,即aa被bb函数调用。