函数的参数传递有三种方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了函数的参数传递有三种方式相关的知识,希望对你有一定的参考价值。

函数的参数传递有三种方式,1)按值传递,2)以指针方式传递,3)以引用方式传递。编写一个函数交换两个变量的值为例,验证是否能实现交换,比较这三种方式的不同

参考技术A #include <iostream>

using namespace std;

//传值调用
void chuanzhi(int a,int b)

int t=a;
a=b;
b=t;
cout<<"传值调用函数里交换完后a,b值:";
cout<<a<<" "<<b<<endl;



//指针传递
void zhizhen(int *a,int *b)

int t=*a;
*a=*b;
*b=t;
cout<<"指针传递函数里交换完后a,b值:";
cout<<*a<<" "<<*b<<endl;


//引用调用
void yinyong(int &a,int &b)

int t=a;
a=b;
b=t;
cout<<"引用调用函数里交换完后a,b值:";
cout<<a<<" "<<b<<endl;


int main()

int x=2,y=4;
cout<<"传值调用前:x=2,y=4"<<endl;
chuanzhi(x,y);
cout<<"传值调用后:x="<<x<<",y="<<y<<endl<<endl;
x=2,y=4;
cout<<"指针传递前:x=2,y=4"<<endl;
zhizhen(&x,&y);
cout<<"指针传递后:x="<<x<<",y="<<y<<endl<<endl;
x=2,y=4;
cout<<"引用调用前:x=2,y=4"<<endl;
yinyong(x,y);
cout<<"引用调用后:x="<<x<<",y="<<y<<endl<<endl;
return 0;


写的有点多 运行完就 9 行

放在c++ 编译器里 运行下看看 就知道了

交换函数里面是肯定交换了,

而只有 指针传递和引用传递 才会对原来的变量值产生影响;本回答被提问者采纳

LUA脚本怎么合函数传递参数

参考技术A static int ABC(lua_State *L)

int n =lua_gettop(L);
double sum =0;
int i;
for (i=1;i<n;i++)

sum+=lua_tonumber(L,i);

lua_pushnumber(L,sum/n);
lua_pushnumber(L,sum);
return 2;
lua_register(L, "ABC", ABC);
参考技术B static int ABC(lua_State *L)

int n =lua_gettop(L);
double sum =0;
int i;
for (i=1;i<n;i++)

sum+=lua_tonumber(L,i);

lua_pushnumber(L,sum/n);
lua_pushnumber(L,sum);
return 2;
lua_register(L, "ABC", ABC);

以上是关于函数的参数传递有三种方式的主要内容,如果未能解决你的问题,请参考以下文章

函数参数的传递方式

SQL函数问题,提示传递给 LEFT 或 SUBSTRING 函数的长度参数无效。

c++中如何用函数传递fstream类型

ASP中怎样传递参数

使用mockMvc做Spring测试时怎么传递数组类型的参数啊?

什么是函数的参数传递呢??它有几种呢?