为什么两个函数运算结果不同

#include <iostream>

using namespace std;

void swap(int a, int b)

{

int temp = a;

a = b;

b = temp;

}

void swap(int *a, int *b)

{

int temp = *a;

*a = *b;

*b = temp;

}


int main()

{

int i = 5;

int j = 10;

cout<<"Before swap: i="<<i<<",j="<<j<<endl;

swap(i,j);

cout<<"After the first swap: i="<<i<<",j="<<j<<endl;

swap(&i,&j);


cout<<"After the second swap: i="<<i<<",j="<<j<<endl;

return 1;

}


不凡的蚂蚁
浏览 1155回答 1
1回答

心有猛虎_细嗅蔷薇

void swap(int a, int b)    //值的拷贝调用swap(i,j);使形参的值与实参一样void swap(int *a, int *b)    //值地址的引用调用swap(&i,&j);使形参指向实参所在的内存地址。这里考察的是函数参数的传递方式——传值与传地址。
打开App,查看更多内容
随时随地看视频慕课网APP