实参和形参

本文详细解释了函数参数中的形参与实参的概念及其区别,包括如何通过值调用和引用调用的方式进行参数传递,并附带了一个判断计算机系统大小端属性的小示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

形参:全称为“形式参数”是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数。

形参的作用是实现主调函数与被调函数之间的联系,通常将函数所处理的数据,影响函数功能的因素或者函数处理的结果作为形参。没有形参的函数在形参表的位置应该写void.main函数也可以有形参和返回值,其形参也称为命令行参数,由操作系统在启动程序时初始化,其返回值传递给操作系统。

实参:可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值。

实参和形参的区别:

空白或占位符

1。函数的形参列于函数声明中,在函数定义的函数体内使用。当函数调用时,形参(任何种类的)是一类将被填充的空白或是占位符。

用来填充形参

2。实参是用来填充形参的。当函数被调用时,实参列在函数名后面的括号里。执行函数调用时,实参被传递给形参。

传值调用和引用调用

3。传值调用和引用调用指的是用于参数传递过程中的一种机制。传值调用中,只使用了实参的值。传值调用机制里,形参是一个局部变量,其初始值为相应实参的值。在引用调用机制里,将实参的地址传递给形参,从表面上看是以实参变量取代形参,因此任何发生在形参上的改变实际上都发生在实参变量上。

判断大小端的方法:

#include<stdio.h>

 

intmain()

{

    int x = 1;

    char *p = (char *)&x;

 

    if(*p)

    {

        printf("little\n");

    }

    else

    {

        printf("large\n");

    }

    return 0;

}

### 关于C语言中实参形参指针的概念及用法 #### 定义概念 在C语言中,当调用函数时传递参数分为两种方式:按值传递(pass by value)按地址传递(pass by reference)。对于指针类型的参数来说,通常采用的是按地址传递的方式。在这种情况下,形参是指针类型变量,而实参则是指向某个数据对象的指针。 - **形参**是在定义函数时声明的形式化参数,在函数内部使用这些形式化的名称来操作传入的实际数据。 - **实参**是实际调用函数时所提供的具体数值或者表达式的结果,它会作为输入被传递给对应的形参[^1]。 #### 使用方法及其区别 通过例子可以更清楚地理解两者之间的差异以及如何正确运用它们: ```c #include<stdio.h> // 函数原型声明 void exchange(int *x, int *y); int main() { int a = 5; int b = 10; printf("Before Exchange:\n"); printf("a=%d , b=%d \n", a, b); // 调用exchange函数并传递两个整数变量的地址 exchange(&a, &b); printf("After Exchange:\n"); printf("a=%d , b=%d \n", a, b); return 0; } // 此处实现交换功能的具体逻辑 void exchange(int *x, int *y){ int temp; temp=*x; *x=*y; *y=temp; } ``` 上述代码展示了利用指针完成两数互换的过程。其中`exchange()`接收两个指向整型的指针作为其形参,并在其体内修改这两个指针对应内存位置存储的内容从而达到外部可见的效果[^2]。 需要注意的一点是从上面第二个引用的例子可以看出如果只是简单改变形参本身所保存的那个副本,则不会影响到原始实参的状态。因为即使我们改变了形参p让它指向另一个新创建出来的局部变量x,这种变化并没有反馈回主程序中的那个原初版本p上;只有当我们真正去间接访问并通过解引用运算符(*)作用于其所指示的目标单元格的时候才会造成实质性的更改。 #### 总结说明 综上所述,掌握好实参形参之间关系尤其重要,尤其是在涉及到底层硬件层面的操作比如操作系统原理等领域更是如此。合理有效地应用指针能够极大地提升编程效率同时也增加了复杂度因此需要谨慎对待每一个细节之处以免引发难以察觉却危害巨大的错误发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值