C通过函数交换指针的值
来源:互联网 发布:百度网盘搜索php源码 编辑:程序博客网 时间:2024/05/21 08:39
内容很简单,初学者自己作为学习笔记以后复习用的。
有如下描述,指针p1->a,p2->b,a=3,b=4,通过函数swap()交换p1,p2指向的对象,即p1->b,p2->a,a=3,b=4
程序如下:
#include <stdio.h>
void swap(int **p1,int **p2);
int main(void){
int a=3,b=4;
int *p1=&a,*p2=&b;
swap(&p1,&p2);
printf("%d %d %d %d\n",*p1,*p2,a,b);
}
void swap(int **p1,int **p2){
int *tem;
tem=*p1;
*p1=*p2;
*p2=tem;
}
这是在论坛里看到别人的一个提问帖子,然后自己写了三次才写对,深感对指针方面了解太差,需要学习下《c和指针》。因为函数调用是传值的,所以要交换p1和p2的指向对象(即交换p1和p2的值),需要将其引用(也就是二重指针)传入函数。
其实归结下用函数交换两个变量的值,就是把两个变量的地址传入函数,然后进行交换。如果是交换例子中的a和b,那就把&a,&b(即p1,p2)传入函数即可,如果要交换p1和p2,那就把&p1,&p2传入函数即可。同时还要注意函数内部的临时变量tem的类型为*(传入类型),即如果传入的是int **,那就是int *tem,如果传入的是int *,那就是int tem。
- C通过函数交换指针的值
- c语言,通过指针交换两个数的值
- C语言指针-------通过调用函数,完成两个数值的交换
- 通过函数给指针赋值(二)交换两个变量的值
- 函数交换,通过指针访问地址
- swap.c -- 使用指针解决交换函数的问题
- 练习3: 通过打印指针,加深对交换函数和指针的理解。
- 立此存照(15)[C++]C++调用swap函数交换2个指针的值
- 【c++程序】通过指针来交换两个数的值
- 通过交换虚函数表指针查看虚函数的实现方式
- 指针与非指针的交换函数
- 练习2: 通过交换函数的实现,学习指针的用法。
- 通过指针变量来交换值
- c语言指针的之交换两个数的值
- C和指针之高级指针话题通过函数指针实现在链表中找到特定的值
- 通过void指针实现跨类型变量交换函数
- 【c程序】用指针交换两数的值
- c语言之交换一个指针数组的值
- []全键盘安卓ICS三星GT-B7810
- timestamp with local time zone 和 timesatamp with time zone的区别
- webService概念
- Python正则表达式指南
- Oracle存储过程基本语法
- C通过函数交换指针的值
- 分享9条经典的编程语录
- myeclipse Resource is out of sync with the file system解决办法
- Windows平台整合 Apache HTTP Server 和 Tomcat
- 编译android遇到java虚拟机堆内存不够的问题 java.lang.OutOfMemoryError: GC overhead limit exceeded 解决方法
- 简单实现MFC ListControl 点击列头排序
- delphi中单独编译pas生成dcu文件
- 一种 去掉复制代码行号 的方法
- 【记】一年之计在于春