在C中,指针采用值传递,就是在传参数时,拷贝形参指针的值给实参指针。
例子:
void swap (int *,int *);
void main(void)
{
int a=100,b=0;
int *pa=&a,*pb=&b;
printf("pa = %d,pb = %d/n",pa,pb);
swap(pa,pb);
printf("pa = %d,pb = %d/n",pa,pb);
}
void swap (int *a,int *b) //此时,a拷贝pa,b拷贝pb
{
int *temp;
temp=a;
a=b;
b=temp;
}
注意:传指针意味实参指针指向的东西是原来形参指针一样,不表示实参指针就是形参指针。
从函数调用也可知道,实参是在函数中的堆栈区分配,明显不是形参。