defmodify(num):
num =10# 修改副本,不影响外部变量
x =5
modify(x)print(x)# 输出 5
2、引用传递 / 按引用调用 (call by reference)
引用传递 含义:直接传递变量本身的内存地址(Java 中不存在)。函数内操作的是原始数据。
如:C++ 中,通过 & 声明参数为引用,函数内操作直接影响原始变量。
特点:函数内修改参数会影响原始变量。
// 包含 C++ 标准输入输出流库。// 用来提供 std::cout(标准输出)和 std::cin(标准输入)等功能,使程序能够与终端交互。#include<iostream>// 声明一个 increment 函数,返回类型为 void(无返回值),接受一个 引用类型的参数 int &n。// int &n: & 符号表示 n 是一个 引用(即 n 是外部传入变量的别名)。// 函数内对 n 的修改会直接作用于原始变量(共享同一内存地址)。voidincrement(int&n){
n++;// 直接修改原始变量}intmain(){// 在 main 函数中声明并初始化一个整型变量 x,初始值为 5。// 内存状态: x 被分配内存空间(如地址 0x7ffd...),存储值 5。int x =5;// 调用 increment 函数,并传递变量 x 的 引用。// increment(x) 中的 x 是原始变量,而非副本。// 函数参数 int &n 使得 n 成为 x 的别名(二者指向同一内存地址)。// 函数执行后,x 的值被修改为 6。increment(x);// 使用【标准输出流】 std::cout 打印变量 x 的值。
std::cout << x;// 输出 6// 结束 main 函数,返回状态码 0 表示程序正常退出。// 在 C++ 中,main 函数默认返回 0,但显式写出 return 0 是良好习惯。return0;}