函数的参数传递有三种方式
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 函数的长度参数无效。