c++形参里总是会有&,传递引用,可以在函数内部更改传入变量的值
c一般是通过*指针来做到
#include <iostream>
#include<stdio.h>
#include <bits/stdc++.h>
#include<iostream>
int add(int x,int y);
int add1(int& x,int& y);
int main() {
std::cout << "Hello, World!" << std::endl;
int z;
int a=3;
int b=4;
int c=add(a,b);
std::cout<<c;
std::cout<<a;
int a1=3;
int b1=4;
int c1=add1(a1,b1);
std::cout<<c1;
std::cout<<a1;
return 0;
}
int add(int x,int y)
{
x=x+1;
return x+y;
}
int add1(int& x,int& y)
{
x=x+1;
return x+y;
}
# 形参&表示引用,这样的话,里面的值变化了,形参也会一起变化
输出:Hello, World!
8384
这个和Python对比来看(引用自:https://foofish.net/python-function-args.html)
def foo(arg):
arg = 2
print(arg)
a = 1
foo(a) # 输出:2
print(a) # 输出:1
#看了代码段1的同学可能会说参数是值传递。
Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是对象。而变量是对象的一个引用(又称为名字或者标签),对象的操作都是通过引用来完成的。例如,[]
是一个空列表对象,变量 a
是该对象的一个引用
def bar(args):
args.append(1)
b = []
print(b)# 输出:[]
print(id(b)) # 输出:4324106952
bar(b)
print(b) # 输出:[1]
print(id(b)) # 输出:4324106952