| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 339 人关注过本帖
标题:这个指针的问题不太理解?帮我解释一下?
取消只看楼主 加入收藏
zpcg
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-8-21
结帖率:100%
收藏
 问题点数:0 回复次数:0 
这个指针的问题不太理解?帮我解释一下?
问题我放在程序的注释中了
程序代码:
/*利用调用函数交换三个数*/

#include <stdio.h>
void main()
{
    void exchange(int *q1, int *q2, int *q3);
    int a , b, c;                      //输入 12   65   31 三个数
    int *p1, *p2, *p3;
    scanf("%d%d%d", &a, &b, &c);
    p1 = &a; p2 = &b; p3 = &c;        
    printf("原来:%d %d %d\n", p1, p2, p3);//输出原来p1 p2 p3 的地址
    printf("&值%d %d %d\n", &a, &b, &c);
    printf("变量a b c值%d %d %d\n", a, b, c);
   
    exchange(p1, p2, p3);
   
    printf("\n交换后:%d %d %d\n", p1, p2, p3); //输出交换后p1 p2 p3 的地址,交换后的指针地址应该不一样啊,可结果和原来一样不理解! ,怎么回事?
    printf("&值%d %d %d\n", &a, &b, &c);      
    printf("变量a b c值%d %d %d\n", a, b, c);    //交换的是指针指向的地址,这三个数顺序应该不变才对,可结果也交换了,不理解!怎么回事?
}

void exchange(int *q1, int *q2, int *q3)
{
    void swap(int *qt1, int *qt2);
    if(*q1 < *q2) 
        swap(q1, q2);
    if(*q1 < *q3)  
        swap(q1, q3);
    if(*q2 < *q3)  
        swap(q2, q3);
}

void swap(int *qt1, int *qt2)
{
    int t;
    t = *qt1;
    *qt1 = *qt2;
    *qt2 = t;
}



[ 本帖最后由 zpcg 于 2011-8-26 22:33 编辑 ]
2011-08-26 22:31
快速回复:这个指针的问题不太理解?帮我解释一下?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.106060 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved