标题:一个指针的小问题 求大神··
只看楼主
GUnever
Rank: 2
等 级:论坛游民
帖 子:59
专家分:25
注 册:2012-3-3
结帖率:95.24%
已结贴  问题点数:5 回复次数:1 
一个指针的小问题 求大神··
#include<stdio.h>
void shuru(int *str1);
void chuli(int *str1);
void shuchu(int *str1);
void main()
{

    int str[10];
    shuru(str);
    chuli(str);
    shuchu(str);
    }
void shuru(int *str1)
    {
        int i;
        for(i=0;i<10;i++)
        {
            scanf("%d",str1++);
        }
    }
void chuli(int *str1)
    {
        int *p1,*p2,min,max,i;
        p1=str1;
        for(i=0;i<10;i++)
        str1++;
        p2=str1;
        str1=p1;
        max=*str1;
        min=*str1;
        for(i=0;i<10;i++)
        {
            str1++;
            if(*str1>max)
            {
                max=*str1;
            }
            if(*str1<min)
            {
                min=*str1;
            }
        }
        *p2=max;
        *p1=min;
    }
void shuchu(int *str1)
    {
        int i;
        for(i=0;i<10;i++)
        {
            printf("%d",*str1++);
        }
    }

这个程序是实现一个数组里面 将最大的放在最后面 最小的放在最前面  然后输出数组  并且用了3个函数  但是第2个处理函数的时候传的是数组str的地址
 用str1++的时候 调试显示整个组数的地址都在往前面移动很奇怪··明明是指针STR1指向了str 应该是指针自加 怎么会变成整个数组都在移动呢··
搜索更多相关主题的帖子: void max include 
2012-04-05 16:25
zhangxiangD
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:39
专家分:119
注 册:2011-12-20
得分:5 
看程序应该不会出现这样的问题呀!毕竟str和str1是两个不同的变量。
不过你的处理函数写的不太好,你的这种写法会覆盖一些值,应该交换
元素。
2012-04-05 17:01



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-365217-1-1.html




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

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