19、C语言深度学习笔记--值传递、指针传递和引用传递(C++)

一、基本介绍

1、值传递:形参是实参的副本(复制、拷贝),形参值的改变不会影响实参的值,这种方式用的最多。

2、指针传递:形参是指针类型,形参作指针运算后指向的就是实参,所以会影响实参的值,这种方式用的也很多。

3、 引用传递(C++):在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际

参数。这种方式用的也蛮多的。(引用只是一个别名)


二、代码示例

1、值传递

(1)代码

//
#include <stdio.h>

void swap(int a, int b)
{
    int tmp;
    tmp = a;
    a = b;
    b = tmp;
    printf("a: %d  b: %d\n",  a, b);
}

int main()
{
    int a = 1;
    int b = 2;
    printf("a: %d  b: %d\n", a, b);
    swap(a, b);
    printf("a: %d  b: %d\n", a, b);
}
//

(2)运行结果


2、指针传递

(1)代码

//
#include <stdio.h>

void swap(int *a, int *b)
{
    int tmp;
    tmp = *a;
    *a = *b;
    *b = tmp;
    printf("a: %d  b: %d\n",  *a, *b);
}

int main()
{
    int a = 1;
    int b = 2;
    printf("a: %d  b: %d\n", a, b);
    swap(&a, &b);
    printf("a: %d  b: %d\n", a, b);
}
//

(2)运行结果


3、引用传递(C++)

(1)代码

//
#include <stdio.h>

void swap(int &a, int &b)
{
    int tmp;
    tmp = a;
    a = b;
    b = tmp;
    printf("a: %d  b: %d\n",  a, b);
}

int main()
{
    int a = 1;
    int b = 2;
    printf("a: %d  b: %d\n", a, b);
    swap(a, b);
    printf("a: %d  b: %d\n", a, b);
}
//

(2)运行结果



致谢

1、形式参数和实在参数

2、C/C++函数形参传实参时值传递、指针传递、引用传递的区别

3、值传递、指针传递、引用传递的区别

4、C/C++语言参数传递----值传递、引用传递、指针传递、指针引用传递

5、 C++中值传递、指针传递和引用传递的比较

6、c++中函数参数传递(值传递、指针传递,引用传递)进一步认识

7、C语言函数调用三种方式:传值调用,引用调用和传地址调用




猜你喜欢

转载自blog.csdn.net/qq_38880380/article/details/80577234