1、函数参数:传值, 传引用, 传指针

值传递是将实参的值传递给形参(形参是实参的副本)

#include <iostream>

void swap_value(int a, int b) 
{
    int temp = a;
    a = b;
    b = temp;
}

int main() 
{
    int x = 10;
    int y = 20;
    swap_value(x, y);
    std::cout << "x: " << x << ", y: " << y << std::endl; // 输出:x: 10, y: 20
    return 0;
}

 

引用传递的是变量的内存地址,但是这个地址对用户隐藏了,不需要显式地使用&*操作符。

① 书写实参时,不需要写&取地址符

② 引用在定义时必须初始化,所以在参数传递时不会有空指针的情况

#include <iostream>

using namespace std;

void swap_reference(int &a, int &b) 
{
    int temp = a;
    a = b;
    b = temp;
}

int main(int argc, char* argv[]) 
{
    int x = 10;
    int y = 20;
    swap_reference(x, y);
    cout << "x: " << x << ", y: " << y << endl; 
    return 0;
}

 

指针传递的是变量的地址,可以传递空指针nullptr

#include <iostream>
using namespace std;

void swap_pointer(int *a, int *b) 
{
    int temp = *a;
    *a = *b;
    *b = temp;
}

int main() 
{
    int x = 10;
    int y = 20;
    swap_pointer(&x, &y);
    cout << "x: " << x << ", y: " << y << endl; // 输出:x: 20, y: 10
    return 0;
}

 

posted on 2025-04-29 08:50  轩~邈  阅读(15)  评论(0)    收藏  举报