1.当函数定义好,直接调用时,调用是按值传递,当将i,k的值赋予函数时,a=2,b =3。
#include<stdio.h>
void fun1(int a,int b)
{
a=a+1;
b=b+1;
}
void main()
{
int i=1,k=2;
fun1(i,k);
printf("%d,%d",i,k);
getchar();
}
2.当采用指针的方式,就可以按地址传递
#include<stdio.h>
void fun1(int *a,int *b)
{
*a=*a+1;
*b=*b+1;
}
void main()
{
int i=1,k=2;
int *p1,*p2;
p1=&i;
p2=&k;
fun1(p1,p2); //或者直接写成fun1(&i,&k)
printf("%d,%d",i,k);
getchar();
}
与VB中byval按值,byref按地址是同样的。