小编Mar*_*hew的帖子

为什么在此代码交换中,在int main()之后而不是在int main()之后编写“ swap”函数时发生?

所以我的疑问是,我正在尝试按值调用,在运行给定代码时,在int main()之后编写函数定义时发生交换,但是如果我在int main()之上剪切并粘贴函数定义,则交换确实没有发生。这是为什么?


#include<iostream>
#include<string>
#include<vector>
#include<bitset>
#include<fstream>
using namespace std;
#define ADDU 1
#define SUBU 3
#define AND 4
#define OR  5
#define NOR 7
#define MemSize 65536
void swap(int a, int b)
{
    int temp = a;
    a = b;
    b = temp;
}

int main(){
    // int a = 20;
    // int *p = &a;
    // cout<<"P: "<<p<<endl<<"*P gives: "<<*p<<endl<<"&p gives: "<<&p<<endl<<"&a : "<<&a;;

    int x,y;
    x = 10;
    y = 20;
    cout<<"Before Swapping: "<<"x: "<<x<<endl<<"y: "<<y<<endl; …
Run Code Online (Sandbox Code Playgroud)

c++ call-by-value

2
推荐指数
1
解决办法
81
查看次数

标签 统计

c++ ×1

call-by-value ×1