我发现如果你将一个指针地址赋值给FUNCTION中另一个指针的地址,它不会改变主函数中的in值,但是通过在main中做同样的事情,它会更改。那么这是什么原因呢?在函数中引用另一个指针的C指针
void func(int *a, int *b){
b = a;
}
int main(){
int i= 5, k =6, *a=&i, *b=&k;
printf("%d %d\n",*a,*b); //output 5 6
b = a;
printf("%d %d\n",*a,*b); //output 5 5
a=&i;
b=&k;
func(a,b);
printf("%d %d\n",*a,*b); //output 5 6
printf("%d %d\n",*a,*b); //output 5 6
}
因为您通过复制传递指针,然后更改指针的副本。 – 2015-03-02 21:57:29
顺便说一句,你永远不会调用函数。这是一个复制错误? – Barmar 2015-03-02 21:58:31