c语言函数调用的三种方式是什么


本文摘自PHP中文网,作者青灯夜游,侵删。

c语言中函数调用的三种方式是:1、传值调用,就是把一个变量的值传递给函数的形式参数;2、引用调用,就是将变量的地址直接传入函数;3、传地址调用,就是通过指针来实现的,把变量的引用传入函数。

本文操作环境:Windows7系统、C11版、Dell G3电脑。

在C语言中函数调用的三种方式分别是:传值调用,引用调用和传地址调用。

1、传值调用

传值调用,就是把一个变量的值传递给函数的形式参数,实际就是用变量的值来新生成一个形式参数,形参运算后在把值返回。

函数中改变的值是不能影响到外界的,因而在函数里对形参的改变不会影响到函数外的变量的值。

下面通过代码示例来理解一下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

#include<stdio.h> 

void myswap(int x, int y) 

    int t; 

    t=x; 

    x=y; 

    y=t; 

int main() 

    int a, b; 

    printf("请输入待交换的两个整数:"); 

    scanf("%d %d", &a, &b); 

    myswap(a,b);  //作为对比,直接交换两个整数,显然不行 

    printf("调用交换函数后的结果是:%d 和 %d\n", a, b); 

    return 0; 

}

运行:

2.jpg

【视频教程推荐:C语言教程】

解析:

没有交互成功原因是:使用传值调用,只在形参上改变了数值,没有在实参上改变数值。

2、传地址调用

传地址调用,就是将变量的地址直接传入函数,它把一个变量的地址赋给函数里形式参数的指针,使指针指向真实的变量的地址,因为对指针所指地址的内容的改变能反映到函数外,也就是能改变函数外的变量的值。

下面通过代码示例来理解一下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

#include<stdio.h> 

void myswap(int *p1, int *p2) 

    int  t; 

    t=*p1; 

    *p1=*p2; 

    *p2=t; 

int main() 

    int a, b; 

    printf("请输入待交换的两个整数:"); 

    scanf("%d %d", &a, &b); 

    myswap(&a,&b);  //交换两个整数的地址 

    printf("调用交换函数后的结果是:%d 和 %d\n", a, b); 

    return 0; 

}

运行:

3.jpg

解析:

交互成功的原因是:使用传地址调用,利用指针改变了原来的地址,所以实参就交换了。

3、引用调用

引用调用实际是通过指针来实现的,把变量的引用传入函数;能达到使用地址调用的效果,可是使用方式如传值调用,函数可以对其值进行修改。

下面通过代码示例来理解一下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

#include<stdio.h>

void myswap(int &x, int &y)

{

    int t;

    t=x;

    x=y;

    y=t;

}

   

int main()

    int a, b;

    printf("请输入待交换的两个整数:");

    scanf("%d %d", &a, &b);

    myswap(a,b);  //注意:这里调用方式与传值调用一样,直接以变量a和b作为实参交换

    printf("调用交换函数后的结果是:%d 和 %d\n", a, b);

    return 0;

}

运行:

4.jpg

解析:

交互成功的原因是:使用引用调用,引用是直接改变两个实参变量a,b的值,所以就交换了。

以上就是c语言函数调用的三种方式是什么的详细内容!

相关阅读 >>

C语言怎么删除字符串中相同字符

C语言sqrt函数的用法

C语言规定,函数返回值的类型是由什么决定的?

C语言特点是什么

fgetc函数的作用详解

C语言中do while语句怎么使用

C语言合法标识符的要求是什么

C语言字符串定义的方法是什么

C语言strcpy函数用法

C语言中整除符号怎么表示?

更多相关阅读请进入《C语言》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...