作者shmm (有要念书找找我)
看板ESOE-91
标题我查到的传值.传址
时间Fri Jun 13 18:39:27 2003
by value: 将呼叫函数的传入变数复制一份给相对应的参数 以提供函数实作区内的
参数运用 因此并不会改变呼叫函数的传入变数
ex: #include <stdio.h>
void add(int);
void add(int k)
{
k++;
printf("the value of function add():%d\n",k);
}
void main()
{
int i=5;
printf("before call by value:%d\n",i);
add(i);
printf("after call by value:%d\n",i);
}
output:5
6
5
by address: 把参数列的参数宣告成指标型态 以便放置传入变数的位址 用传位址的
方式来传递参数 将会把呼叫函数的传入变数位址 指派给被呼叫函数的
参数列中相对应参数 故能透过指标来使用传入变数本身
ex: #include <stdio.h>
void add(int *);
void add(int *k)
{
*k=*k+1;
printf("the value of function add():%d\n",*k);
}
void main()
{
int i=5;
printf("before call by address:%d\n",i);
add(&i);
printf("after call by address:%d\n",i);
}
output: 5
6
6
by reference: 把参数列之参数设为参考型态 以便让参数参考相对应的传入变数
ex: #include <stdio.h>
void add(int &);
void add(int &k)
{
k=k+1;
printf("the value of function add():%d\n",k);
}
void main()
{
int i=5;
printf("before call by reference:%d\n",i);
add(i);
printf("after call by reference:%d\n",i);
}
output: 5
6
6
--
※ 发信站: 批踢踢实业坊(ptt.csie.ntu.edu.tw)
◆ From: 140.112.240.76