| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 350 人关注过本帖
标题:c语言指针
只看楼主 加入收藏
x不会飞
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2010-11-22
结帖率:42.86%
收藏
已结贴  问题点数:10 回复次数:4 
c语言指针
#include<stdio.h>
void main()
{
 void wa(int *p1,int *p2);
 int a,b;
 int *pa,*pb;
 printf("please input two numbers:");
 scanf("%d%d",&a,&b);
 pa=&a;
 pb=&b;
 if(a<b) wa(*pa,*pb);
 printf("max is %d,min is %d\n",*pa,*pb);
}
void wa(int *p1,int *p2)
{
    int *temp;
    temp=p1;
    p1=p2;
    p2=temp;
}
为什么不行?
搜索更多相关主题的帖子: c语言 
2011-04-09 12:43
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:3 
我也刚开始学指针,用代码说话把。
程序代码:

#include<stdio.h>

int main(void) {
        void wa(int *p1,int *p2);
        int a,b;
        int *pa,*pb;
        printf("please input two numbers:");
        scanf("%d%d",&a,&b);
        pa=&a;
        pb=&b;

        if(a<b) wa(pa,pb);

        printf("max is %d,min is %d\n",*pa,*pb);

        return 0;
}

void wa(int *p1,int *p2) {
    int temp;
    temp=*p1;
    *p1=*p2;
    *p2=temp;
}

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-04-09 12:48
菜鸟auto
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:58
专家分:100
注 册:2010-7-23
收藏
得分:3 
函数传递是“值传递” 单向的传递。形参只用在被调用的时候分配内存,调用结束后,释放内存。
void wa(int *p1,int *p2)
{
    int *temp;
    temp=p1;
    p1=p2;
    p2=temp;
}

这个函数中temp,p1,p2地址的交换,不会反馈给主函数
2011-04-09 13:08
shinan77
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:87
专家分:188
注 册:2010-9-24
收藏
得分:3 
程序代码:
#include<stdio.h>

 void main()

 {

 void wa(int *p1,int *p2);

 int a,b;

 int *pa,*pb;

 printf("please input two numbers:");

 scanf("%d%d",&a,&b);

 pa=&a;

 pb=&b;

 if(a<b) 
wa(*pa,*pb);//参数的类型错了!!!应该改成wa(pa,pb);
 printf("max is %d,min is %d\n",*pa,*pb);

 }

 void wa(int *p1,int *p2)//你定义的形参类型为int类型的指针,所以在调用函数的时候应该用指针作为参数,而不是解引用
 {
     int *temp;
     temp=p1;
     p1=p2;
     p2=temp;

 }

 

--------将学到的东西为我所用,这才是学习的目的 --------
2011-04-09 13:35
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:3 
程序代码:
#include<stdio.h>
void main()
{
void wa(int *p1,int *p2);
int a,b;
int *pa,*pb;
printf("please input two numbers:");
scanf("%d%d",&a,&b);
pa=&a;
pb=&b;
if(a<b) wa(pa,pb);
printf("max is %d,min is %d\n",*pa,*pb);
}
void wa(int *p1,int *p2)
{
    int temp;
    temp=*p1;
    *p1=*p2;
    *p2=temp;
}
楼主没有弄清楚指针和指针所指向的内容之间的关系

                                         
===========深入<----------------->浅出============
2011-04-09 13:45
快速回复:c语言指针
数据加载中...
 
   



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

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