首页 > 其他 > 详细

C中改变指针的指向

时间:2014-01-16 21:56:57      阅读:322      评论:0      收藏:0      [点我收藏+]

交换两个指针的指向若用函数调用来实现的话必须用到二级指针,因为参数传递是值传递,相当于只把两个指针副本的指向交换了一下,若不用函数的话

一级指针也可以

1、一级指针

#include <stdio.h>
int main(){
 

 int a,b;
 int *p1=&a,*p2=&b;
 printf("%p\t%p\n",p1,p2);
 int *tmp;
 tmp=p1;
 p1=p2;
 p2=tmp;
 printf("%p\t%p\n",p1,p2);


 return 0;
}

2、二级指针

#include <stdio.h>

void swap(int**x,int**y){
int* temp;
temp = *x;
*x = *y;
*y = temp;
}
int main(int argc, char* argv[])
{
int a = 8;
int b = 88;

int* p = &a;
int* q = &b;

int** pp = &p;
int** qq = &q;


printf("&a=%p\n",p);
printf("&b=%p\n",q);

swap(pp,qq);
printf("&a=%p\n",p);
printf("&b=%p\n",q);

return 0;
}

C中改变指针的指向

原文:http://www.cnblogs.com/encode/p/3521541.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!