void swap1(int p, int q){ int t = p; p = q; q = t;}
void swap2(int* p, int* q){ int* t = p; p = q; q = t;}
void swap3(int* p, int* q){ int* t; *t = *p; *p = *q; *q = *t;}
void swap4(int* p, int* q){ int t = *p; *p = *q; *q = t;}
void swap5(int& p, int& q){ int t = p; p = q; q = t;}有什么区别
swap1,值传递,无用。
swap2,修改了指针的指向,实现了指针的交换。
swap3,声明int *t时,未赋初始值,指针指向未知地址。
swap4,修改了指针的值,指针的值改变了,指针指向的地址没变。
swap5,址传递,实现了int的交换。