YoungLee的手账

YoungLee的手账

# C 学习笔记-3.指针中参数传递方式总结

Dev
25
2024-07-07

C 学习笔记-3.指针中参数传递方式总结

C语言中函数参数的传递方式主要有两种:值传递和引用传递。

值传递

  • 函数内部只能得到实参的一个副本,对副本的赋值操作不会影响到实参。

  • 默认情况下,C语言函数参数的传递方式是值传递。

  • int change(int x) {
    x = 100;
    return 100;
    }

    int main() {
    int a = 10;

    printf("%d\n", a); // 输出 10

    change(a);

    printf("%d\n", a); // 输出 10
    }

引用传递

  • 函数内部能够直接访问实参,并可以改变实参的值。

  • 使用&符号可以实现引用传递。

    `void change(int ptr) {
    ptr = 100;
    }

    int main() {
    int a = 10;
    int *ptr = &a;

    printf(“%d\n”, a); // 输出 10

    change(ptr);

    printf(“%d\n”, a); // 输出 100
    }`

总结

  • 了解C语言函数参数的传递方式,对于理解和编写C语言程序非常重要。
  • 在需要改变实参的值时,可以使用引用传递。

额外知识

  • 指针变量本质上是一个存储了内存地址的变量。
  • 函数调用指针变量的时候,会改变指针变量指向的值,而不是复制一份。
  • 函数内部对指针变量的赋值操作,不会改变指针变量本身的值。

附:

值传递

假设你有一个装满10个苹果的篮子,你想把这个篮子送给朋友。

在值传递中,你把篮子里的苹果复制一份,然后把复制的苹果送给朋友。

这样,你的朋友就得到了10个苹果,但你的篮子里的苹果数量并没有改变。

C语言中的值传递

在C语言中,函数参数的默认传递方式是值传递。

这意味着,当你把一个变量作为参数传递给函数时,函数内部只会得到该变量的一个副本。

引用传递

如果你想让函数内部能够改变实参的值,你需要使用引用传递。

在引用传递中,你把篮子的地址送给朋友。

这样,你的朋友就能够直接访问你的篮子,并可以改变篮子里的苹果数量。