找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3144|回复: 0
打印 上一主题 下一主题
收起左侧

指针互换的两种形式(换值or换地址)

[复制链接]
跳转到指定楼层
楼主
ID:51090 发表于 2014-9-17 14:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1......换值不换地址
    函数形式,此时函数可以

#include<stdio.h>
void swap (int * p, int *q)  //下面出现的是地址,所以此时刻应该出现的是指针
{
int temp;
temp = *p;
*p = *q;
*q = temp;
}
int main (void)
{
int a, b;
int * p, * q;
scanf ("%d %d",&a,&b);
p = &a;
q = &b;

if (a
  swap(p,q);  //此时p q都是地址,这句换相当于前面的几行取消掉,改为swap(&a,&b)
     //因此,指针的函数调用用的是地址作为变量
printf ("max = %d  min =%d\n",a,b);

return 0;
}
2.....换地址不换值
   用函数形式,不可以这样,只可以直接进行互换
  
// 不可能通过执行调用函数来改变实参指针变量的值,但是可以改变实参指针变量所指变量的值
//  所以这个不可以进行函数,只可以直接进行写
#include<stdio.h>
void swap (int * p, int * q)
{
int * temp;
temp = p;
p = q;
q = temp;
}
int main (void)
{
int a, b;
scanf ("%d %d",&a,&b);
if (a
  swap(&a,&b);

printf ("max = %d  min =%d\n",a,b);
return 0;
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表