转自:《C专家编程》
非参数指针:
int array[10], array2[10];
main(){
array[1] = 3;
*array = 3;
array = array2; /*失败*/
}
指针实参:
fun1(int *ptr){
ptr[1] = 3;
*ptr = 3;
ptr = array2;
}
数组实参:
fun2(int arr[]){
arr[1] = 3;
*arr = 3;
arr = array2;
}
语句array = array2; 将引起一个编译错误,错误信息是“无法修改数组名”。但是,arr = array2却是合法的,因为arr虽然声明为一个数组但实际上仍是一个指针。