主题:一道 简单的C语言指针题,请教。。。
自定义函数为void swap(int p1,int p2)
{
int temp;
temp=p1;
p1=p2;
p2=temp;
}
而在主函数中调用时发生指针调用
swap(*(p+i),*(p+j));
却不可以。
但如果自定义的函数是void swap(int *p1,int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
} 则在主函数中可以发生指针调用。
我不大懂其中的原因,是不是因为函数的实参和形参类型要一致这个原因?
{
int temp;
temp=p1;
p1=p2;
p2=temp;
}
而在主函数中调用时发生指针调用
swap(*(p+i),*(p+j));
却不可以。
但如果自定义的函数是void swap(int *p1,int *p2)
{
int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
} 则在主函数中可以发生指针调用。
我不大懂其中的原因,是不是因为函数的实参和形参类型要一致这个原因?