在自己建立的一个函数中是否可以用p=&a[i]代替*p=a[i]?
例如:
void minmax(int a[], int len, int *min, int *max)
{
int i;
*min = *max=a[0];
for ( i=1; i<len;i++) {
if(a[i]<*min){
*min = a[i];
}
if(a[i]>*max){
*max=a[i];
}
}
}
用min=&a[i]可否?
只改变了p的局部拷贝,实参未被改变;所以不行。
你要这么理解
a len min max 本身都是这个函数中的局部变量,修改他们的值只在这个函数内部有效。
min 这个局部变量因为是指针类型,所以它保存着一个地址,使用*min,或者min[]是在访问那个地址的内容,意味着出了这个函数,你对那个地址内容的修改还是生效的。