指针交换两个数
突然看到自己以前研究关于指针交换两个数的代码,当时自己还通过不断的printf来观察地址的变化,理解了之后发现不论几级指针,其核心是不变的。
一级指针交换
void swap(int *p, int *q)
{
int t;
t = *p;
*p = *q;
*q = t;
}
void main()
{
int a = 1,b = 2;
swap(&a,&b);
printf("a = %d,b = %d\n",a,b);
}
二级指针交换
void swap(int **p, int **q)
{
int t;
t = **p;
**p = **q;
**q = t;
}
void main()
{
int a = 1,b = 2;
int *p = &a,*q = &b;
swap(&p,&q);
printf("a = %d,b = %d\n",a,b);
}
!@#$%^&*~