| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 701 人关注过本帖
标题:十万火急~!返回的指针怎么用函数接収~~?大虾帮忙~!
只看楼主 加入收藏
xiaotutu6000
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:85
专家分:137
注 册:2009-10-30
结帖率:88.89%
收藏
已结贴  问题点数:20 回复次数:8 
十万火急~!返回的指针怎么用函数接収~~?大虾帮忙~!

int chang(int p,int n);
void main()
{
    int *p;
    int n;
    int i;
    printf("请确定输入数的个数: \n");
    scanf("%d",&n);
    p=(int *)malloc(n*sizeof(int));
    printf("请输入您要置换的一组数\n");
    for(i=0;i<n;i++)
    {
        scanf(" %d",p+i);
    }
    for(i=0;i<n;i++)
    {
        printf("%d",*chang(*p,n));//这里怎么接收啊~!怎么接受一个指针~??
    }
}

int chang(int *p,int n)
{
    int i;
    int temp;
    for(i=0;i<n/2;i++)
    {
        temp=*(p+i);
        *(p+i)=*(p+n-1+i);
        *(p+n-1+i)=temp;
    }
    return *p;
}
搜索更多相关主题的帖子: 函数 指针 
2009-11-09 23:24
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:20 
想返回值是指针的话,返回类型要改下
int chang(int *p,int n)  改为  int* chang(int *p,int n)
函数申明处也要改。。。
int chang(int *p,int n)  表示返回一个普通变量
2009-11-09 23:29
xiaotutu6000
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:85
专家分:137
注 册:2009-10-30
收藏
得分:0 
改了还是错了  接收那里有问题~~!
2009-11-09 23:33
xiaotutu6000
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:85
专家分:137
注 册:2009-10-30
收藏
得分:0 
大哥教我怎么改啊~~!
2009-11-09 23:38
xiaotutu6000
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:85
专家分:137
注 册:2009-10-30
收藏
得分:0 
大哥  我自己搞定啦~~~   谢谢你了~~~
2009-11-10 00:00
willstier
Rank: 2
等 级:论坛游民
帖 子:40
专家分:60
注 册:2009-8-5
收藏
得分:0 
回复 5楼 xiaotutu6000
把你的解决措施写出来,以备他人参考.        

帮助别人就是帮助自己,回答错误,也是发现自己的错误。
2009-11-10 00:15
hsm8592
Rank: 2
等 级:论坛游民
帖 子:55
专家分:57
注 册:2009-11-6
收藏
得分:0 
void chang(int *p,int n);
void main()
{
    int *p;
    int n;
    int i;
    printf("请确定输入数的个数: \n");
    scanf("%d",&n);
    p=(int *)malloc(n*sizeof(int));
    printf("请输入您要置换的一组数\n");
    for(i=0;i<n;i++)
    {
        scanf(" %d",p+i);
    }

    chang(*p,n);
    for(i=0;i<n;i++)
    {
        printf("%d",*p+i);
    }
}

void chang(int *p,int n)
{
    int i;
    int temp;
    for(i=0;i<n/2;i++)
    {
        temp=*(p+i);
        *(p+i)=*(p+n-1+i);
        *(p+n-1+i)=temp;
    }
  }

不知道对不对,高手帮指点一下
2009-11-10 08:48
fuqingjun
Rank: 2
来 自:山东
等 级:论坛游民
帖 子:48
专家分:80
注 册:2009-11-2
收藏
得分:0 
解决这个问题换个思路就行了不需要非得返回指针被其他常变量接受。返回指针值得函数 要用 指针变量作为leftvalue。 如 P = change()。然后提取p所指位置的值。 如 printf("%d",*p);一完成难免会有些差错, 有时候代码多不代表算法复杂。耗费同样的cpu 为何不把代码写的条理鲜明一些呢?

我是猪猪,我很想进步,寻志同道合者革命途中并肩行路!
2009-11-10 09:03
xiaotutu6000
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:85
专家分:137
注 册:2009-10-30
收藏
得分:0 

#include<stdio.h>
#include<malloc.h>

int *chang(int *p,int n);
void main()
{
    int *p;
    int *q=NULL;
    int n;
    int i;
    printf("请确定输入数的个数: \n");
    scanf("%d",&n);
    p=(int *)malloc(n*sizeof(int));
    printf("请输入您要置换的一组数\n");
    for(i=0;i<n;i++)
    {
        scanf(" %d",p+i);
    }
    q=chang(p,n);//为什么这里要新建一个指针接受,而就是不能直接用
    for(i=0;i<n;i++)
    {
        printf("%d",*(q+i));
    }
    free(0);
}

int *chang(int *p,int n)
{
    int i;
    int temp;
    for(i=0;i<n/2;i++)
    {
        temp=*(p+i);
        *(p+i)=*(p+n-1+i);
        *(p+n-1+i)=temp;
    }
    return p;
}着我写得~!
2009-11-10 22:20
快速回复:十万火急~!返回的指针怎么用函数接収~~?大虾帮忙~!
数据加载中...
 
   



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

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