**
新人博客小编一枚,希望与大家多多交流C++的学习心得,欢迎大家批评指教、共同进步!
对C++初学者来说,对于值传递和地址传递的使用都停留在“用而不懂”的状态,以至于在实际应用经常会发生各种错误,今天我从内存的角度分析一下,希望帮助初学者从根本来理解两者之间的区别,这样才能在学习C++的道路上取得更大地提升。
一、基本概念
形参:函数定义中的参数;
实参:实际传入函数中的参数;
值传递:以变量、常量等为函数参数,将实参的值复制一份到函数的形参中,函数中参数的修改对实参不会产生影响;
地址传递:以指针为函数参数,传入的实参为地址,形式参数接收地址,函数中参数的修改的同时也修改了实参。
以经典的swap函数作为案例来研讨一下值传递和地址传递的区别。
二、值传递
#include<iostream>
using namespace std;
//swap函数定义
void swap(int num1, int num2) //形参num1,num2
{
int temp = num1;
num1 = num2;
num2 = temp;
cout << "调用swap函数中:" << "num1=" << num1 << " num2&